diff options
Diffstat (limited to 'thirdparties/iphone')
103 files changed, 4893 insertions, 4799 deletions
diff --git a/thirdparties/iphone/include/g729b/dtx.h b/thirdparties/iphone/include/g729b/dtx.h index d0cc6ac..c8af076 100755 --- a/thirdparties/iphone/include/g729b/dtx.h +++ b/thirdparties/iphone/include/g729b/dtx.h @@ -13,36 +13,36 @@ /* Encoder DTX/CNG functions */ void Init_Cod_cng(void); void Cod_cng( - Word16 *exc, /* (i/o) : excitation array */ - Word16 pastVad, /* (i) : previous VAD decision */ - Word16 *lsp_old_q, /* (i/o) : previous quantized lsp */ - Word16 *Aq, /* (o) : set of interpolated LPC coefficients */ - Word16 *ana, /* (o) : coded SID parameters */ - Word16 freq_prev[MA_NP][M], - /* (i/o) : previous LPS for quantization */ - Word16 *seed /* (i/o) : random generator seed */ + Word16 *exc, /* (i/o) : excitation array */ + Word16 pastVad, /* (i) : previous VAD decision */ + Word16 *lsp_old_q, /* (i/o) : previous quantized lsp */ + Word16 *Aq, /* (o) : set of interpolated LPC coefficients */ + Word16 *ana, /* (o) : coded SID parameters */ + Word16 freq_prev[MA_NP][M], + /* (i/o) : previous LPS for quantization */ + Word16 *seed /* (i/o) : random generator seed */ ); void Update_cng( - Word16 *r_h, /* (i) : MSB of frame autocorrelation */ - Word16 exp_r, /* (i) : scaling factor associated */ - Word16 Vad /* (i) : current Vad decision */ + Word16 *r_h, /* (i) : MSB of frame autocorrelation */ + Word16 exp_r, /* (i) : scaling factor associated */ + Word16 Vad /* (i) : current Vad decision */ ); /* SID gain Quantization */ void Qua_Sidgain( - Word16 *ener, /* (i) array of energies */ - Word16 *sh_ener, /* (i) corresponding scaling factors */ - Word16 nb_ener, /* (i) number of energies or */ - Word16 *enerq, /* (o) decoded energies in dB */ - Word16 *idx /* (o) SID gain quantization index */ + Word16 *ener, /* (i) array of energies */ + Word16 *sh_ener, /* (i) corresponding scaling factors */ + Word16 nb_ener, /* (i) number of energies or */ + Word16 *enerq, /* (o) decoded energies in dB */ + Word16 *idx /* (o) SID gain quantization index */ ); /* CNG excitation generation */ void Calc_exc_rand( - Word16 cur_gain, /* (i) : target sample gain */ - Word16 *exc, /* (i/o) : excitation array */ - Word16 *seed, /* (i) : current Vad decision */ - Flag flag_cod /* (i) : encoder/decoder flag */ + Word16 cur_gain, /* (i) : target sample gain */ + Word16 *exc, /* (i/o) : excitation array */ + Word16 *seed, /* (i) : current Vad decision */ + Flag flag_cod /* (i) : encoder/decoder flag */ ); /* SID LSP Quantization */ @@ -54,16 +54,16 @@ void Update_decfreq_prev(Word16 x[MA_NP][M]); /* Decoder CNG generation */ void Init_Dec_cng(void); void Dec_cng( - Word16 past_ftyp, /* (i) : past frame type */ - Word16 sid_sav, /* (i) : energy to recover SID gain */ - Word16 sh_sid_sav, /* (i) : corresponding scaling factor */ - Word16 *parm, /* (i) : coded SID parameters */ - Word16 *exc, /* (i/o) : excitation array */ - Word16 *lsp_old, /* (i/o) : previous lsp */ - Word16 *A_t, /* (o) : set of interpolated LPC coefficients */ - Word16 *seed, /* (i/o) : random generator seed */ - Word16 freq_prev[MA_NP][M] - /* (i/o) : previous LPS for quantization */ + Word16 past_ftyp, /* (i) : past frame type */ + Word16 sid_sav, /* (i) : energy to recover SID gain */ + Word16 sh_sid_sav, /* (i) : corresponding scaling factor */ + Word16 *parm, /* (i) : coded SID parameters */ + Word16 *exc, /* (i/o) : excitation array */ + Word16 *lsp_old, /* (i/o) : previous lsp */ + Word16 *A_t, /* (o) : set of interpolated LPC coefficients */ + Word16 *seed, /* (i/o) : random generator seed */ + Word16 freq_prev[MA_NP][M] + /* (i/o) : previous LPS for quantization */ ); Word16 read_frame(FILE *f_serial, Word16 *parm); @@ -92,7 +92,7 @@ Word16 read_frame(FILE *f_serial, Word16 *parm); #define RATE_0 0 /* 0 bit/s rate */ /* CNG excitation generation constant */ - /* alpha = 0.5 */ +/* alpha = 0.5 */ #define FRAC1 19043 /* (sqrt(40)xalpha/2 - 1) * 32768 */ #define K0 24576 /* (1 - alpha ** 2) in Q15 */ #define G_MAX 5000 diff --git a/thirdparties/iphone/include/g729b/ld8a.h b/thirdparties/iphone/include/g729b/ld8a.h index 0f95011..7a847b8 100755 --- a/thirdparties/iphone/include/g729b/ld8a.h +++ b/thirdparties/iphone/include/g729b/ld8a.h @@ -43,18 +43,18 @@ *-------------------------------*/ Word32 Inv_sqrt( /* (o) Q30 : output value (range: 0<=val<1) */ - Word32 L_x /* (i) Q0 : input value (range: 0<=val<=7fffffff) */ + Word32 L_x /* (i) Q0 : input value (range: 0<=val<=7fffffff) */ ); void Log2( - Word32 L_x, /* (i) Q0 : input value */ - Word16 *exponent, /* (o) Q0 : Integer part of Log2. (range: 0<=val<=30) */ - Word16 *fraction /* (o) Q15: Fractionnal part of Log2. (range: 0<=val<1) */ + Word32 L_x, /* (i) Q0 : input value */ + Word16 *exponent, /* (o) Q0 : Integer part of Log2. (range: 0<=val<=30) */ + Word16 *fraction /* (o) Q15: Fractionnal part of Log2. (range: 0<=val<1) */ ); Word32 Pow2( /* (o) Q0 : result (range: 0<=val<=0x7fffffff) */ - Word16 exponent, /* (i) Q0 : Integer part. (range: 0<=val<=30) */ - Word16 fraction /* (i) Q15 : Fractionnal part. (range: 0.0<=val<1.0) */ + Word16 exponent, /* (i) Q0 : Integer part. (range: 0<=val<=30) */ + Word16 fraction /* (i) Q15 : Fractionnal part. (range: 0.0<=val<1.0) */ ); /*-------------------------------* @@ -65,13 +65,13 @@ void Init_Pre_Process(void); void Init_Post_Process(void); void Pre_Process( - Word16 signal[], /* Input/output signal */ - Word16 lg /* Length of signal */ + Word16 signal[], /* Input/output signal */ + Word16 lg /* Length of signal */ ); void Post_Process( - Word16 signal[], /* Input/output signal */ - Word16 lg /* Length of signal */ + Word16 signal[], /* Input/output signal */ + Word16 lg /* Length of signal */ ); /*----------------------------------* @@ -81,20 +81,20 @@ void Post_Process( void Init_Coder_ld8a(void); void Coder_ld8a( - Word16 ana[], /* output : Analysis parameters */ - Word16 frame, - Word16 vad_enable + Word16 ana[], /* output : Analysis parameters */ + Word16 frame, + Word16 vad_enable ); void Init_Decod_ld8a(void); void Decod_ld8a( - Word16 parm[], /* (i) : vector of synthesis parameters + Word16 parm[], /* (i) : vector of synthesis parameters parm[0] = bad frame indicator (bfi) */ - Word16 synth[], /* (o) : synthesis speech */ - Word16 A_t[], /* (o) : decoded LP filter in 2 subframes */ - Word16 *T2, /* (o) : decoded pitch lag in 2 subframes */ - Word16 *Vad /* (o) : VAD */ + Word16 synth[], /* (o) : synthesis speech */ + Word16 A_t[], /* (o) : decoded LP filter in 2 subframes */ + Word16 *T2, /* (o) : decoded pitch lag in 2 subframes */ + Word16 *Vad /* (o) : VAD */ ); /*-------------------------------* @@ -102,84 +102,84 @@ void Decod_ld8a( *-------------------------------*/ void Autocorr( - Word16 x[], /* (i) : Input signal */ - Word16 m, /* (i) : LPC order */ - Word16 r_h[], /* (o) : Autocorrelations (msb) */ - Word16 r_l[], /* (o) : Autocorrelations (lsb) */ - Word16 *exp_R0 + Word16 x[], /* (i) : Input signal */ + Word16 m, /* (i) : LPC order */ + Word16 r_h[], /* (o) : Autocorrelations (msb) */ + Word16 r_l[], /* (o) : Autocorrelations (lsb) */ + Word16 *exp_R0 ); void Lag_window( - Word16 m, /* (i) : LPC order */ - Word16 r_h[], /* (i/o) : Autocorrelations (msb) */ - Word16 r_l[] /* (i/o) : Autocorrelations (lsb) */ + Word16 m, /* (i) : LPC order */ + Word16 r_h[], /* (i/o) : Autocorrelations (msb) */ + Word16 r_l[] /* (i/o) : Autocorrelations (lsb) */ ); void Levinson( - Word16 Rh[], /* (i) : Rh[m+1] Vector of autocorrelations (msb) */ - Word16 Rl[], /* (i) : Rl[m+1] Vector of autocorrelations (lsb) */ - Word16 A[], /* (o) Q12 : A[m] LPC coefficients (m = 10) */ - Word16 rc[], /* (o) Q15 : rc[M] Relection coefficients. */ - Word16 *Err /* (o) : Residual energy */ + Word16 Rh[], /* (i) : Rh[m+1] Vector of autocorrelations (msb) */ + Word16 Rl[], /* (i) : Rl[m+1] Vector of autocorrelations (lsb) */ + Word16 A[], /* (o) Q12 : A[m] LPC coefficients (m = 10) */ + Word16 rc[], /* (o) Q15 : rc[M] Relection coefficients. */ + Word16 *Err /* (o) : Residual energy */ ); void Az_lsp( - Word16 a[], /* (i) Q12 : predictor coefficients */ - Word16 lsp[], /* (o) Q15 : line spectral pairs */ - Word16 old_lsp[] /* (i) : old lsp[] (in case not found 10 roots) */ + Word16 a[], /* (i) Q12 : predictor coefficients */ + Word16 lsp[], /* (o) Q15 : line spectral pairs */ + Word16 old_lsp[] /* (i) : old lsp[] (in case not found 10 roots) */ ); void Lsp_Az( - Word16 lsp[], /* (i) Q15 : line spectral frequencies */ - Word16 a[] /* (o) Q12 : predictor coefficients (order = 10) */ + Word16 lsp[], /* (i) Q15 : line spectral frequencies */ + Word16 a[] /* (o) Q12 : predictor coefficients (order = 10) */ ); void Lsf_lsp( - Word16 lsf[], /* (i) Q15 : lsf[m] normalized (range: 0.0<=val<=0.5) */ - Word16 lsp[], /* (o) Q15 : lsp[m] (range: -1<=val<1) */ - Word16 m /* (i) : LPC order */ + Word16 lsf[], /* (i) Q15 : lsf[m] normalized (range: 0.0<=val<=0.5) */ + Word16 lsp[], /* (o) Q15 : lsp[m] (range: -1<=val<1) */ + Word16 m /* (i) : LPC order */ ); void Lsp_lsf( - Word16 lsp[], /* (i) Q15 : lsp[m] (range: -1<=val<1) */ - Word16 lsf[], /* (o) Q15 : lsf[m] normalized (range: 0.0<=val<=0.5) */ - Word16 m /* (i) : LPC order */ + Word16 lsp[], /* (i) Q15 : lsp[m] (range: -1<=val<1) */ + Word16 lsf[], /* (o) Q15 : lsf[m] normalized (range: 0.0<=val<=0.5) */ + Word16 m /* (i) : LPC order */ ); void Int_qlpc( - Word16 lsp_old[], /* input : LSP vector of past frame */ - Word16 lsp_new[], /* input : LSP vector of present frame */ - Word16 Az[] /* output: interpolated Az() for the 2 subframes */ + Word16 lsp_old[], /* input : LSP vector of past frame */ + Word16 lsp_new[], /* input : LSP vector of present frame */ + Word16 Az[] /* output: interpolated Az() for the 2 subframes */ ); void Weight_Az( - Word16 a[], /* (i) Q12 : a[m+1] LPC coefficients */ - Word16 gamma, /* (i) Q15 : Spectral expansion factor. */ - Word16 m, /* (i) : LPC order. */ - Word16 ap[] /* (o) Q12 : Spectral expanded LPC coefficients */ + Word16 a[], /* (i) Q12 : a[m+1] LPC coefficients */ + Word16 gamma, /* (i) Q15 : Spectral expansion factor. */ + Word16 m, /* (i) : LPC order. */ + Word16 ap[] /* (o) Q12 : Spectral expanded LPC coefficients */ ); void Residu( - Word16 a[], /* (i) Q12 : prediction coefficients */ - Word16 x[], /* (i) : speech (values x[-m..-1] are needed (m=10) */ - Word16 y[], /* (o) : residual signal */ - Word16 lg /* (i) : size of filtering */ + Word16 a[], /* (i) Q12 : prediction coefficients */ + Word16 x[], /* (i) : speech (values x[-m..-1] are needed (m=10) */ + Word16 y[], /* (o) : residual signal */ + Word16 lg /* (i) : size of filtering */ ); void Syn_filt( - Word16 a[], /* (i) Q12 : a[m+1] prediction coefficients (m=10) */ - Word16 x[], /* (i) : input signal */ - Word16 y[], /* (o) : output signal */ - Word16 lg, /* (i) : size of filtering */ - Word16 mem[], /* (i/o) : memory associated with this filtering. */ - Word16 update /* (i) : 0=no update, 1=update of memory. */ + Word16 a[], /* (i) Q12 : a[m+1] prediction coefficients (m=10) */ + Word16 x[], /* (i) : input signal */ + Word16 y[], /* (o) : output signal */ + Word16 lg, /* (i) : size of filtering */ + Word16 mem[], /* (i/o) : memory associated with this filtering. */ + Word16 update /* (i) : 0=no update, 1=update of memory. */ ); void Convolve( - Word16 x[], /* (i) : input vector */ - Word16 h[], /* (i) Q12 : impulse response */ - Word16 y[], /* (o) : output vector */ - Word16 L /* (i) : vector size */ + Word16 x[], /* (i) : input vector */ + Word16 h[], /* (i) Q12 : impulse response */ + Word16 y[], /* (o) : output vector */ + Word16 L /* (i) : vector size */ ); /*--------------------------------------------------------------------------* @@ -195,75 +195,75 @@ void Convolve( *-----------------------*/ Word16 Pitch_ol_fast( /* output: open loop pitch lag */ - Word16 signal[], /* input : signal used to compute the open loop pitch */ - /* signal[-pit_max] to signal[-1] should be known */ - Word16 pit_max, /* input : maximum pitch lag */ - Word16 L_frame /* input : length of frame to compute pitch */ + Word16 signal[], /* input : signal used to compute the open loop pitch */ + /* signal[-pit_max] to signal[-1] should be known */ + Word16 pit_max, /* input : maximum pitch lag */ + Word16 L_frame /* input : length of frame to compute pitch */ ); Word16 Pitch_fr3_fast(/* (o) : pitch period. */ - Word16 exc[], /* (i) : excitation buffer */ - Word16 xn[], /* (i) : target vector */ - Word16 h[], /* (i) Q12 : impulse response of filters. */ - Word16 L_subfr, /* (i) : Length of subframe */ - Word16 t0_min, /* (i) : minimum value in the searched range. */ - Word16 t0_max, /* (i) : maximum value in the searched range. */ - Word16 i_subfr, /* (i) : indicator for first subframe. */ - Word16 *pit_frac /* (o) : chosen fraction. */ + Word16 exc[], /* (i) : excitation buffer */ + Word16 xn[], /* (i) : target vector */ + Word16 h[], /* (i) Q12 : impulse response of filters. */ + Word16 L_subfr, /* (i) : Length of subframe */ + Word16 t0_min, /* (i) : minimum value in the searched range. */ + Word16 t0_max, /* (i) : maximum value in the searched range. */ + Word16 i_subfr, /* (i) : indicator for first subframe. */ + Word16 *pit_frac /* (o) : chosen fraction. */ ); Word16 G_pitch( /* (o) Q14 : Gain of pitch lag saturated to 1.2 */ - Word16 xn[], /* (i) : Pitch target. */ - Word16 y1[], /* (i) : Filtered adaptive codebook. */ - Word16 g_coeff[], /* (i) : Correlations need for gain quantization. */ - Word16 L_subfr /* (i) : Length of subframe. */ + Word16 xn[], /* (i) : Pitch target. */ + Word16 y1[], /* (i) : Filtered adaptive codebook. */ + Word16 g_coeff[], /* (i) : Correlations need for gain quantization. */ + Word16 L_subfr /* (i) : Length of subframe. */ ); Word16 Enc_lag3( /* output: Return index of encoding */ - Word16 T0, /* input : Pitch delay */ - Word16 T0_frac, /* input : Fractional pitch delay */ - Word16 *T0_min, /* in/out: Minimum search delay */ - Word16 *T0_max, /* in/out: Maximum search delay */ - Word16 pit_min, /* input : Minimum pitch delay */ - Word16 pit_max, /* input : Maximum pitch delay */ - Word16 pit_flag /* input : Flag for 1st subframe */ + Word16 T0, /* input : Pitch delay */ + Word16 T0_frac, /* input : Fractional pitch delay */ + Word16 *T0_min, /* in/out: Minimum search delay */ + Word16 *T0_max, /* in/out: Maximum search delay */ + Word16 pit_min, /* input : Minimum pitch delay */ + Word16 pit_max, /* input : Maximum pitch delay */ + Word16 pit_flag /* input : Flag for 1st subframe */ ); void Dec_lag3( /* output: return integer pitch lag */ - Word16 index, /* input : received pitch index */ - Word16 pit_min, /* input : minimum pitch lag */ - Word16 pit_max, /* input : maximum pitch lag */ - Word16 i_subfr, /* input : subframe flag */ - Word16 *T0, /* output: integer part of pitch lag */ - Word16 *T0_frac /* output: fractional part of pitch lag */ + Word16 index, /* input : received pitch index */ + Word16 pit_min, /* input : minimum pitch lag */ + Word16 pit_max, /* input : maximum pitch lag */ + Word16 i_subfr, /* input : subframe flag */ + Word16 *T0, /* output: integer part of pitch lag */ + Word16 *T0_frac /* output: fractional part of pitch lag */ ); Word16 Interpol_3( /* (o) : interpolated value */ - Word16 *x, /* (i) : input vector */ - Word16 frac /* (i) : fraction */ + Word16 *x, /* (i) : input vector */ + Word16 frac /* (i) : fraction */ ); void Pred_lt_3( - Word16 exc[], /* in/out: excitation buffer */ - Word16 T0, /* input : integer pitch lag */ - Word16 frac, /* input : fraction of lag */ - Word16 L_subfr /* input : subframe size */ + Word16 exc[], /* in/out: excitation buffer */ + Word16 T0, /* input : integer pitch lag */ + Word16 frac, /* input : fraction of lag */ + Word16 L_subfr /* input : subframe size */ ); Word16 Parity_Pitch( /* output: parity bit (XOR of 6 MSB bits) */ - Word16 pitch_index /* input : index for which parity to compute */ + Word16 pitch_index /* input : index for which parity to compute */ ); Word16 Check_Parity_Pitch( /* output: 0 = no error, 1= error */ - Word16 pitch_index, /* input : index of parameter */ - Word16 parity /* input : parity bit */ + Word16 pitch_index, /* input : index of parameter */ + Word16 parity /* input : parity bit */ ); void Cor_h_X( - Word16 h[], /* (i) Q12 :Impulse response of filters */ - Word16 X[], /* (i) :Target vector */ - Word16 D[] /* (o) :Correlations between h[] and D[] */ - /* Normalized to 13 bits */ + Word16 h[], /* (i) Q12 :Impulse response of filters */ + Word16 X[], /* (i) :Target vector */ + Word16 D[] /* (o) :Correlations between h[] and D[] */ + /* Normalized to 13 bits */ ); /*-----------------------* @@ -284,19 +284,19 @@ void Cor_h_X( #define _1_16 (Word16)( 2048) Word16 ACELP_Code_A( /* (o) :index of pulses positions */ - Word16 x[], /* (i) :Target vector */ - Word16 h[], /* (i) Q12 :Inpulse response of filters */ - Word16 T0, /* (i) :Pitch lag */ - Word16 pitch_sharp, /* (i) Q14 :Last quantized pitch gain */ - Word16 code[], /* (o) Q13 :Innovative codebook */ - Word16 y[], /* (o) Q12 :Filtered innovative codebook */ - Word16 *sign /* (o) :Signs of 4 pulses */ + Word16 x[], /* (i) :Target vector */ + Word16 h[], /* (i) Q12 :Inpulse response of filters */ + Word16 T0, /* (i) :Pitch lag */ + Word16 pitch_sharp, /* (i) Q14 :Last quantized pitch gain */ + Word16 code[], /* (o) Q13 :Innovative codebook */ + Word16 y[], /* (o) Q12 :Filtered innovative codebook */ + Word16 *sign /* (o) :Signs of 4 pulses */ ); void Decod_ACELP( - Word16 sign, /* (i) : signs of 4 pulses. */ - Word16 index, /* (i) : Positions of the 4 pulses. */ - Word16 cod[] /* (o) Q13 : algebraic (fixed) codebook excitation */ + Word16 sign, /* (i) : signs of 4 pulses. */ + Word16 index, /* (i) : Positions of the 4 pulses. */ + Word16 cod[] /* (o) Q13 : algebraic (fixed) codebook excitation */ ); /*--------------------------------------------------------------------------* * LSP constant parameters * @@ -328,152 +328,152 @@ void Decod_ACELP( *-------------------------------*/ void Lsf_lsp2( - Word16 lsf[], /* (i) Q13 : lsf[m] (range: 0.0<=val<PI) */ - Word16 lsp[], /* (o) Q15 : lsp[m] (range: -1<=val<1) */ - Word16 m /* (i) : LPC order */ + Word16 lsf[], /* (i) Q13 : lsf[m] (range: 0.0<=val<PI) */ + Word16 lsp[], /* (o) Q15 : lsp[m] (range: -1<=val<1) */ + Word16 m /* (i) : LPC order */ ); void Lsp_lsf2( - Word16 lsp[], /* (i) Q15 : lsp[m] (range: -1<=val<1) */ - Word16 lsf[], /* (o) Q13 : lsf[m] (range: 0.0<=val<PI) */ - Word16 m /* (i) : LPC order */ + Word16 lsp[], /* (i) Q15 : lsp[m] (range: -1<=val<1) */ + Word16 lsf[], /* (o) Q13 : lsf[m] (range: 0.0<=val<PI) */ + Word16 m /* (i) : LPC order */ ); void Qua_lsp( - Word16 lsp[], /* (i) Q15 : Unquantized LSP */ - Word16 lsp_q[], /* (o) Q15 : Quantized LSP */ - Word16 ana[] /* (o) : indexes */ + Word16 lsp[], /* (i) Q15 : Unquantized LSP */ + Word16 lsp_q[], /* (o) Q15 : Quantized LSP */ + Word16 ana[] /* (o) : indexes */ ); void Get_wegt( - Word16 flsp[], /* Q13 */ - Word16 wegt[] /* Q11 -> normalized */ + Word16 flsp[], /* Q13 */ + Word16 wegt[] /* Q11 -> normalized */ ); void Lsp_encw_reset( - void + void ); void Lsp_qua_cs( - Word16 flsp_in[M], /* Q13 */ - Word16 lspq_out[M], /* Q13 */ - Word16 *code + Word16 flsp_in[M], /* Q13 */ + Word16 lspq_out[M], /* Q13 */ + Word16 *code ); void Lsp_expand_1( - Word16 buf[], /* Q13 */ - Word16 gap /* Q13 */ + Word16 buf[], /* Q13 */ + Word16 gap /* Q13 */ ); void Lsp_expand_2( - Word16 buf[], /* Q13 */ - Word16 gap /* Q13 */ + Word16 buf[], /* Q13 */ + Word16 gap /* Q13 */ ); void Lsp_expand_1_2( - Word16 buf[], /* Q13 */ - Word16 gap /* Q13 */ + Word16 buf[], /* Q13 */ + Word16 gap /* Q13 */ ); void Lsp_get_quant( - Word16 lspcb1[][M], /* Q13 */ - Word16 lspcb2[][M], /* Q13 */ - Word16 code0, - Word16 code1, - Word16 code2, - Word16 fg[][M], /* Q15 */ - Word16 freq_prev[][M], /* Q13 */ - Word16 lspq[], /* Q13 */ - Word16 fg_sum[] /* Q15 */ + Word16 lspcb1[][M], /* Q13 */ + Word16 lspcb2[][M], /* Q13 */ + Word16 code0, + Word16 code1, + Word16 code2, + Word16 fg[][M], /* Q15 */ + Word16 freq_prev[][M], /* Q13 */ + Word16 lspq[], /* Q13 */ + Word16 fg_sum[] /* Q15 */ ); void Lsp_get_tdist( - Word16 wegt[], /* normalized */ - Word16 buf[], /* Q13 */ - Word32 *L_tdist, /* Q27 */ - Word16 rbuf[], /* Q13 */ - Word16 fg_sum[] /* Q15 */ + Word16 wegt[], /* normalized */ + Word16 buf[], /* Q13 */ + Word32 *L_tdist, /* Q27 */ + Word16 rbuf[], /* Q13 */ + Word16 fg_sum[] /* Q15 */ ); void Lsp_last_select( - Word32 L_tdist[], /* Q27 */ - Word16 *mode_index + Word32 L_tdist[], /* Q27 */ + Word16 *mode_index ); void Lsp_pre_select( - Word16 rbuf[], /* Q13 */ - Word16 lspcb1[][M], /* Q13 */ - Word16 *cand + Word16 rbuf[], /* Q13 */ + Word16 lspcb1[][M], /* Q13 */ + Word16 *cand ); void Lsp_select_1( - Word16 rbuf[], /* Q13 */ - Word16 lspcb1[], /* Q13 */ - Word16 wegt[], /* normalized */ - Word16 lspcb2[][M], /* Q13 */ - Word16 *index + Word16 rbuf[], /* Q13 */ + Word16 lspcb1[], /* Q13 */ + Word16 wegt[], /* normalized */ + Word16 lspcb2[][M], /* Q13 */ + Word16 *index ); void Lsp_select_2( - Word16 rbuf[], /* Q13 */ - Word16 lspcb1[], /* Q13 */ - Word16 wegt[], /* normalized */ - Word16 lspcb2[][M], /* Q13 */ - Word16 *index + Word16 rbuf[], /* Q13 */ + Word16 lspcb1[], /* Q13 */ + Word16 wegt[], /* normalized */ + Word16 lspcb2[][M], /* Q13 */ + Word16 *index ); void Lsp_stability( - Word16 buf[] /* Q13 */ + Word16 buf[] /* Q13 */ ); void Relspwed( - Word16 lsp[], /* Q13 */ - Word16 wegt[], /* normalized */ - Word16 lspq[], /* Q13 */ - Word16 lspcb1[][M], /* Q13 */ - Word16 lspcb2[][M], /* Q13 */ - Word16 fg[MODE][MA_NP][M], /* Q15 */ - Word16 freq_prev[MA_NP][M], /* Q13 */ - Word16 fg_sum[MODE][M], /* Q15 */ - Word16 fg_sum_inv[MODE][M], /* Q12 */ - Word16 code_ana[] + Word16 lsp[], /* Q13 */ + Word16 wegt[], /* normalized */ + Word16 lspq[], /* Q13 */ + Word16 lspcb1[][M], /* Q13 */ + Word16 lspcb2[][M], /* Q13 */ + Word16 fg[MODE][MA_NP][M], /* Q15 */ + Word16 freq_prev[MA_NP][M], /* Q13 */ + Word16 fg_sum[MODE][M], /* Q15 */ + Word16 fg_sum_inv[MODE][M], /* Q12 */ + Word16 code_ana[] ); void D_lsp( - Word16 prm[], /* (i) : indexes of the selected LSP */ - Word16 lsp_q[], /* (o) Q15 : Quantized LSP parameters */ - Word16 erase /* (i) : frame erase information */ + Word16 prm[], /* (i) : indexes of the selected LSP */ + Word16 lsp_q[], /* (o) Q15 : Quantized LSP parameters */ + Word16 erase /* (i) : frame erase information */ ); void Lsp_decw_reset( - void + void ); void Lsp_iqua_cs( - Word16 prm[], /* input : codes of the selected LSP*/ - Word16 lsp_q[], /* output: Quantized LSP parameters*/ - Word16 erase /* input : frame erase information */ + Word16 prm[], /* input : codes of the selected LSP*/ + Word16 lsp_q[], /* output: Quantized LSP parameters*/ + Word16 erase /* input : frame erase information */ ); void Lsp_prev_compose( - Word16 lsp_ele[], /* Q13 */ - Word16 lsp[], /* Q13 */ - Word16 fg[][M], /* Q15 */ - Word16 freq_prev[][M], /* Q13 */ - Word16 fg_sum[] /* Q15 */ + Word16 lsp_ele[], /* Q13 */ + Word16 lsp[], /* Q13 */ + Word16 fg[][M], /* Q15 */ + Word16 freq_prev[][M], /* Q13 */ + Word16 fg_sum[] /* Q15 */ ); void Lsp_prev_extract( - Word16 lsp[M], /* Q13 */ - Word16 lsp_ele[M], /* Q13 */ - Word16 fg[MA_NP][M], /* Q15 */ - Word16 freq_prev[MA_NP][M], /* Q13 */ - Word16 fg_sum_inv[M] /* Q12 */ + Word16 lsp[M], /* Q13 */ + Word16 lsp_ele[M], /* Q13 */ + Word16 fg[MA_NP][M], /* Q15 */ + Word16 freq_prev[MA_NP][M], /* Q13 */ + Word16 fg_sum_inv[M] /* Q12 */ ); void Lsp_prev_update( - Word16 lsp_ele[M], /* Q13 */ - Word16 freq_prev[MA_NP][M] /* Q13 */ + Word16 lsp_ele[M], /* Q13 */ + Word16 freq_prev[MA_NP][M] /* Q13 */ ); /*-------------------------------* @@ -493,48 +493,48 @@ void Lsp_prev_update( *--------------------------------------------------------------------------*/ Word16 Qua_gain( - Word16 code[], /* (i) Q13 : Innovative vector. */ - Word16 g_coeff[], /* (i) : Correlations <xn y1> -2<y1 y1> */ - /* <y2,y2>, -2<xn,y2>, 2<y1,y2> */ - Word16 exp_coeff[],/* (i) : Q-Format g_coeff[] */ - Word16 L_subfr, /* (i) : Subframe length. */ - Word16 *gain_pit, /* (o) Q14 : Pitch gain. */ - Word16 *gain_cod, /* (o) Q1 : Code gain. */ - Word16 tameflag /* (i) : flag set to 1 if taming is needed */ + Word16 code[], /* (i) Q13 : Innovative vector. */ + Word16 g_coeff[], /* (i) : Correlations <xn y1> -2<y1 y1> */ + /* <y2,y2>, -2<xn,y2>, 2<y1,y2> */ + Word16 exp_coeff[],/* (i) : Q-Format g_coeff[] */ + Word16 L_subfr, /* (i) : Subframe length. */ + Word16 *gain_pit, /* (o) Q14 : Pitch gain. */ + Word16 *gain_cod, /* (o) Q1 : Code gain. */ + Word16 tameflag /* (i) : flag set to 1 if taming is needed */ ); void Dec_gain( - Word16 index, /* (i) : Index of quantization. */ - Word16 code[], /* (i) Q13 : Innovative vector. */ - Word16 L_subfr, /* (i) : Subframe length. */ - Word16 bfi, /* (i) : Bad frame indicator */ - Word16 *gain_pit, /* (o) Q14 : Pitch gain. */ - Word16 *gain_cod /* (o) Q1 : Code gain. */ + Word16 index, /* (i) : Index of quantization. */ + Word16 code[], /* (i) Q13 : Innovative vector. */ + Word16 L_subfr, /* (i) : Subframe length. */ + Word16 bfi, /* (i) : Bad frame indicator */ + Word16 *gain_pit, /* (o) Q14 : Pitch gain. */ + Word16 *gain_cod /* (o) Q1 : Code gain. */ ); void Gain_predict( - Word16 past_qua_en[],/* (i) Q10 :Past quantized energies */ - Word16 code[], /* (i) Q13 : Innovative vector. */ - Word16 L_subfr, /* (i) : Subframe length. */ - Word16 *gcode0, /* (o) Qxx : Predicted codebook gain */ - Word16 *exp_gcode0 /* (o) : Q-Format(gcode0) */ + Word16 past_qua_en[],/* (i) Q10 :Past quantized energies */ + Word16 code[], /* (i) Q13 : Innovative vector. */ + Word16 L_subfr, /* (i) : Subframe length. */ + Word16 *gcode0, /* (o) Qxx : Predicted codebook gain */ + Word16 *exp_gcode0 /* (o) : Q-Format(gcode0) */ ); void Gain_update( - Word16 past_qua_en[],/* (i) Q10 :Past quantized energies */ - Word32 L_gbk12 /* (i) Q13 : gbk1[indice1][1]+gbk2[indice2][1] */ + Word16 past_qua_en[],/* (i) Q10 :Past quantized energies */ + Word32 L_gbk12 /* (i) Q13 : gbk1[indice1][1]+gbk2[indice2][1] */ ); void Gain_update_erasure( - Word16 past_qua_en[]/* (i) Q10 :Past quantized energies */ + Word16 past_qua_en[]/* (i) Q10 :Past quantized energies */ ); void Corr_xy2( - Word16 xn[], /* (i) Q0 :Target vector. */ - Word16 y1[], /* (i) Q0 :Adaptive codebook. */ - Word16 y2[], /* (i) Q12 :Filtered innovative vector. */ - Word16 g_coeff[], /* (o) Q[exp]:Correlations between xn,y1,y2 */ - Word16 exp_g_coeff[] /* (o) :Q-format of g_coeff[] */ + Word16 xn[], /* (i) Q0 :Target vector. */ + Word16 y1[], /* (i) Q0 :Adaptive codebook. */ + Word16 y2[], /* (i) Q12 :Filtered innovative vector. */ + Word16 g_coeff[], /* (o) Q[exp]:Correlations between xn,y1,y2 */ + Word16 exp_g_coeff[] /* (o) :Q-format of g_coeff[] */ ); /*-----------------------* @@ -570,31 +570,31 @@ void bits2prm_ld8k(Word16 bits[], Word16 prm[]); void Init_Post_Filter(void); void Post_Filter( - Word16 *syn, /* in/out: synthesis speech (postfiltered is output) */ - Word16 *Az_4, /* input : interpolated LPC parameters in all subframes */ - Word16 *T, /* input : decoded pitch lags in all subframes */ - Word16 Vad + Word16 *syn, /* in/out: synthesis speech (postfiltered is output) */ + Word16 *Az_4, /* input : interpolated LPC parameters in all subframes */ + Word16 *T, /* input : decoded pitch lags in all subframes */ + Word16 Vad ); void pit_pst_filt( - Word16 *signal, /* (i) : input signal */ - Word16 *scal_sig, /* (i) : input signal (scaled, divided by 4) */ - Word16 t0_min, /* (i) : minimum value in the searched range */ - Word16 t0_max, /* (i) : maximum value in the searched range */ - Word16 L_subfr, /* (i) : size of filtering */ - Word16 *signal_pst /* (o) : harmonically postfiltered signal */ + Word16 *signal, /* (i) : input signal */ + Word16 *scal_sig, /* (i) : input signal (scaled, divided by 4) */ + Word16 t0_min, /* (i) : minimum value in the searched range */ + Word16 t0_max, /* (i) : maximum value in the searched range */ + Word16 L_subfr, /* (i) : size of filtering */ + Word16 *signal_pst /* (o) : harmonically postfiltered signal */ ); void preemphasis( - Word16 *signal, /* (i/o) : input signal overwritten by the output */ - Word16 g, /* (i) Q15 : preemphasis coefficient */ - Word16 L /* (i) : size of filtering */ + Word16 *signal, /* (i/o) : input signal overwritten by the output */ + Word16 g, /* (i) Q15 : preemphasis coefficient */ + Word16 L /* (i) : size of filtering */ ); void agc( - Word16 *sig_in, /* (i) : postfilter input signal */ - Word16 *sig_out, /* (i/o) : postfilter output signal */ - Word16 l_trm /* (i) : subframe size */ + Word16 *sig_in, /* (i) : postfilter input signal */ + Word16 *sig_out, /* (i/o) : postfilter output signal */ + Word16 l_trm /* (i) : subframe size */ ); /*--------------------------------------------------------------------------* @@ -615,14 +615,14 @@ Word16 test_err(Word16 t0, Word16 t0_frac); *--------------------------------------------------------------------------*/ void Copy( - Word16 x[], /* (i) : input vector */ - Word16 y[], /* (o) : output vector */ - Word16 L /* (i) : vector length */ + Word16 x[], /* (i) : input vector */ + Word16 y[], /* (o) : output vector */ + Word16 L /* (i) : vector length */ ); void Set_zero( - Word16 x[], /* (o) : vector to clear */ - Word16 L /* (i) : length of vector */ + Word16 x[], /* (o) : vector to clear */ + Word16 L /* (i) : length of vector */ ); Word16 Random(Word16 *seed); diff --git a/thirdparties/iphone/include/g729b/octet.h b/thirdparties/iphone/include/g729b/octet.h index e75827a..61adecb 100755 --- a/thirdparties/iphone/include/g729b/octet.h +++ b/thirdparties/iphone/include/g729b/octet.h @@ -7,8 +7,8 @@ */ /* Definition for Octet Transmission mode */ -/* When Annex B is used for transmission systems that operate on octet boundary, - an extra bit (with value zero) will be packed at the end of a SID bit stream. +/* When Annex B is used for transmission systems that operate on octet boundary, + an extra bit (with value zero) will be packed at the end of a SID bit stream. This will change the number of bits in a SID bit stream from 15 bits to 16 bits (i.e., 2 bytes). */ diff --git a/thirdparties/iphone/include/g729b/sid.h b/thirdparties/iphone/include/g729b/sid.h index 3aae1eb..a9b539b 100755 --- a/thirdparties/iphone/include/g729b/sid.h +++ b/thirdparties/iphone/include/g729b/sid.h @@ -14,8 +14,8 @@ void Init_lsfq_noise(void); void lsfq_noise(Word16 *lsp_new, Word16 *lspq, Word16 freq_prev[MA_NP][M], Word16 *idx); -void sid_lsfq_decode(Word16 *index, Word16 *lspq, - Word16 freq_prev[MA_NP][M]); +void sid_lsfq_decode(Word16 *index, Word16 *lspq, + Word16 freq_prev[MA_NP][M]); diff --git a/thirdparties/iphone/include/g729b/tab_ld8a.h b/thirdparties/iphone/include/g729b/tab_ld8a.h index 0cb1b3e..08410d9 100755 --- a/thirdparties/iphone/include/g729b/tab_ld8a.h +++ b/thirdparties/iphone/include/g729b/tab_ld8a.h @@ -40,7 +40,7 @@ extern Word16 a100[3]; extern Word16 b140[3]; extern Word16 a140[3]; extern Word16 bitsno[PRM_SIZE]; -extern Word16 bitsno2[4]; +extern Word16 bitsno2[4]; extern Word16 tabpow[33]; extern Word16 tablog[33]; extern Word16 tabsqr[49]; diff --git a/thirdparties/iphone/include/g729b/vad.h b/thirdparties/iphone/include/g729b/vad.h index fb7a67e..d455071 100755 --- a/thirdparties/iphone/include/g729b/vad.h +++ b/thirdparties/iphone/include/g729b/vad.h @@ -17,14 +17,14 @@ void vad_init(void); void vad( - Word16 rc, - Word16 *lsf, - Word16 *r_h, - Word16 *r_l, - Word16 exp_R0, - Word16 *sigpp, - Word16 frm_count, - Word16 prev_marker, - Word16 pprev_marker, - Word16 *marker); + Word16 rc, + Word16 *lsf, + Word16 *r_h, + Word16 *r_l, + Word16 exp_R0, + Word16 *sigpp, + Word16 frm_count, + Word16 prev_marker, + Word16 pprev_marker, + Word16 *marker); diff --git a/thirdparties/iphone/include/gsm.h b/thirdparties/iphone/include/gsm.h index 4714ab6..5df6c99 100755 --- a/thirdparties/iphone/include/gsm.h +++ b/thirdparties/iphone/include/gsm.h @@ -55,7 +55,7 @@ typedef gsm_byte gsm_frame[33]; /* 33 * 8 bits */ #define GSM_OPT_FRAME_CHAIN 6 extern gsm gsm_create GSM_P((void)); -extern void gsm_destroy GSM_P((gsm)); +extern void gsm_destroy GSM_P((gsm)); extern int gsm_print GSM_P((FILE *, gsm, gsm_byte *)); extern int gsm_option GSM_P((gsm, int, int *)); diff --git a/thirdparties/iphone/include/libavcodec/avcodec.h b/thirdparties/iphone/include/libavcodec/avcodec.h index dc317dc..020f29f 100755 --- a/thirdparties/iphone/include/libavcodec/avcodec.h +++ b/thirdparties/iphone/include/libavcodec/avcodec.h @@ -559,7 +559,7 @@ enum Motion_Est_ID { /** * @ingroup lavc_decoding */ -enum AVDiscard{ +enum AVDiscard { /* We leave some space between them for extensions (drop some * keyframes for intra-only or drop just some bidir frames). */ AVDISCARD_NONE =-16, ///< discard nothing @@ -570,7 +570,7 @@ enum AVDiscard{ AVDISCARD_ALL = 48, ///< discard all }; -enum AVColorPrimaries{ +enum AVColorPrimaries { AVCOL_PRI_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP177 Annex B AVCOL_PRI_UNSPECIFIED = 2, AVCOL_PRI_BT470M = 4, @@ -581,7 +581,7 @@ enum AVColorPrimaries{ AVCOL_PRI_NB , ///< Not part of ABI }; -enum AVColorTransferCharacteristic{ +enum AVColorTransferCharacteristic { AVCOL_TRC_BT709 = 1, ///< also ITU-R BT1361 AVCOL_TRC_UNSPECIFIED = 2, AVCOL_TRC_GAMMA22 = 4, ///< also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM @@ -590,7 +590,7 @@ enum AVColorTransferCharacteristic{ AVCOL_TRC_NB , ///< Not part of ABI }; -enum AVColorSpace{ +enum AVColorSpace { AVCOL_SPC_RGB = 0, AVCOL_SPC_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B AVCOL_SPC_UNSPECIFIED = 2, @@ -603,7 +603,7 @@ enum AVColorSpace{ }; #define AVCOL_SPC_YCGCO AVCOL_SPC_YCOCG -enum AVColorRange{ +enum AVColorRange { AVCOL_RANGE_UNSPECIFIED = 0, AVCOL_RANGE_MPEG = 1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges AVCOL_RANGE_JPEG = 2, ///< the normal 2^n-1 "JPEG" YUV ranges @@ -615,7 +615,7 @@ enum AVColorRange{ * 1 2 1-6 are possible chroma positions * X X 5 6 X 0 is undefined/unknown position */ -enum AVChromaLocation{ +enum AVChromaLocation { AVCHROMA_LOC_UNSPECIFIED = 0, AVCHROMA_LOC_LEFT = 1, ///< mpeg2/4, h264 default AVCHROMA_LOC_CENTER = 2, ///< mpeg1, jpeg, h263 @@ -642,7 +642,7 @@ enum AVAudioServiceType { /** * @ingroup lavc_encoding */ -typedef struct RcOverride{ +typedef struct RcOverride { int start_frame; int end_frame; int qscale; // If this is 0 then quality_factor will be used instead. @@ -832,7 +832,7 @@ typedef struct RcOverride{ * This specifies the area which should be displayed. * Note there may be multiple such areas for one frame. */ -typedef struct AVPanScan{ +typedef struct AVPanScan { /** * id * - encoding: Set by user. @@ -854,7 +854,7 @@ typedef struct AVPanScan{ * - decoding: Set by libavcodec. */ int16_t position[3][2]; -}AVPanScan; +} AVPanScan; #define FF_QSCALE_TYPE_MPEG1 0 #define FF_QSCALE_TYPE_MPEG2 1 @@ -1826,7 +1826,7 @@ typedef struct AVCodecContext { * - encoding: Set by user. * - decoding: unused */ - int prediction_method; + int prediction_method; #define FF_PRED_LEFT 0 #define FF_PRED_PLANE 1 #define FF_PRED_MEDIAN 2 @@ -2585,11 +2585,11 @@ typedef struct AVCodecContext { void (*rtp_callback)(struct AVCodecContext *avctx, void *data, int size, int mb_nb); int rtp_payload_size; /* The size of the RTP payload: the coder will */ - /* do its best to deliver a chunk with size */ - /* below rtp_payload_size, the chunk will start */ - /* with a start code on some codecs like H.263. */ - /* This doesn't take account of any particular */ - /* headers inside the transmitted RTP payload. */ + /* do its best to deliver a chunk with size */ + /* below rtp_payload_size, the chunk will start */ + /* with a start code on some codecs like H.263. */ + /* This doesn't take account of any particular */ + /* headers inside the transmitted RTP payload. */ /* statistics, used for 2-pass encoding */ int mv_bits; @@ -2816,7 +2816,7 @@ typedef struct AVCodecContext { * - encoding: Set by libavcodec. * - decoding: Set by user. */ - int bits_per_coded_sample; + int bits_per_coded_sample; /** * Bits per sample/pixel of internal libavcodec pixel/sample format. @@ -2830,7 +2830,7 @@ typedef struct AVCodecContext { * - encoding: unused * - decoding: Set by user. */ - int lowres; + int lowres; /** * the picture in the bitstream @@ -2920,14 +2920,14 @@ typedef struct AVCodecContext { * - encoding: Set by user. * - decoding: unused */ - int nsse_weight; + int nsse_weight; /** * profile * - encoding: Set by user. * - decoding: Set by libavcodec. */ - int profile; + int profile; #define FF_PROFILE_UNKNOWN -99 #define FF_PROFILE_RESERVED -100 @@ -2997,7 +2997,7 @@ typedef struct AVCodecContext { * - encoding: Set by user. * - decoding: Set by libavcodec. */ - int level; + int level; #define FF_LEVEL_UNKNOWN -99 /** @@ -3851,8 +3851,8 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, * used or zero if no frame data was decompressed (used) from the input AVPacket. */ attribute_deprecated int avcodec_decode_audio3(AVCodecContext *avctx, int16_t *samples, - int *frame_size_ptr, - AVPacket *avpkt); + int *frame_size_ptr, + AVPacket *avpkt); #endif /** @@ -3933,8 +3933,8 @@ int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame, * used or zero if no frame could be decompressed. */ int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture, - int *got_picture_ptr, - const AVPacket *avpkt); + int *got_picture_ptr, + const AVPacket *avpkt); /** * Decode a subtitle message. @@ -3953,8 +3953,8 @@ int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture, * @param[in] avpkt The input AVPacket containing the input buffer. */ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, - int *got_sub_ptr, - AVPacket *avpkt); + int *got_sub_ptr, + AVPacket *avpkt); /** * @defgroup lavc_parsing Frame parsing @@ -4208,8 +4208,8 @@ AVCodec *avcodec_find_encoder_by_name(const char *name); * of bytes used to encode the data read from the input buffer. */ int attribute_deprecated avcodec_encode_audio(AVCodecContext *avctx, - uint8_t *buf, int buf_size, - const short *samples); + uint8_t *buf, int buf_size, + const short *samples); #endif /** @@ -4481,7 +4481,7 @@ int av_picture_crop(AVPicture *dst, const AVPicture *src, * Pad image. */ int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width, enum PixelFormat pix_fmt, - int padtop, int padbottom, int padleft, int padright, int *color); + int padtop, int padbottom, int padleft, int padright, int *color); /** * @} @@ -4569,7 +4569,7 @@ int avcodec_get_pix_fmt_loss(enum PixelFormat dst_pix_fmt, enum PixelFormat src_ */ attribute_deprecated enum PixelFormat avcodec_find_best_pix_fmt(int64_t pix_fmt_mask, enum PixelFormat src_pix_fmt, - int has_alpha, int *loss_ptr); + int has_alpha, int *loss_ptr); #endif /* FF_API_FIND_BEST_PIX_FMT */ /** @@ -4590,8 +4590,8 @@ enum PixelFormat avcodec_find_best_pix_fmt(int64_t pix_fmt_mask, enum PixelForma * @return The best pixel format to convert to or -1 if none was found. */ enum PixelFormat avcodec_find_best_pix_fmt_of_list(enum PixelFormat *pix_fmt_list, - enum PixelFormat src_pix_fmt, - int has_alpha, int *loss_ptr); + enum PixelFormat src_pix_fmt, + int has_alpha, int *loss_ptr); /** * Find the best pixel format to convert to given a certain source pixel @@ -4624,16 +4624,16 @@ enum PixelFormat avcodec_find_best_pix_fmt_of_list(enum PixelFormat *pix_fmt_lis * @return The best pixel format to convert to or -1 if none was found. */ enum PixelFormat avcodec_find_best_pix_fmt_of_2(enum PixelFormat dst_pix_fmt1, enum PixelFormat dst_pix_fmt2, - enum PixelFormat src_pix_fmt, int has_alpha, int *loss_ptr); + enum PixelFormat src_pix_fmt, int has_alpha, int *loss_ptr); attribute_deprecated #if AV_HAVE_INCOMPATIBLE_FORK_ABI enum PixelFormat avcodec_find_best_pix_fmt2(enum PixelFormat *pix_fmt_list, - enum PixelFormat src_pix_fmt, - int has_alpha, int *loss_ptr); + enum PixelFormat src_pix_fmt, + int has_alpha, int *loss_ptr); #else enum PixelFormat avcodec_find_best_pix_fmt2(enum PixelFormat dst_pix_fmt1, enum PixelFormat dst_pix_fmt2, - enum PixelFormat src_pix_fmt, int has_alpha, int *loss_ptr); + enum PixelFormat src_pix_fmt, int has_alpha, int *loss_ptr); #endif @@ -4850,10 +4850,10 @@ AVHWAccel *av_hwaccel_next(AVHWAccel *hwaccel); * Lock operation used by lockmgr */ enum AVLockOp { - AV_LOCK_CREATE, ///< Create a mutex - AV_LOCK_OBTAIN, ///< Lock the mutex - AV_LOCK_RELEASE, ///< Unlock the mutex - AV_LOCK_DESTROY, ///< Free mutex resources + AV_LOCK_CREATE, ///< Create a mutex + AV_LOCK_OBTAIN, ///< Lock the mutex + AV_LOCK_RELEASE, ///< Unlock the mutex + AV_LOCK_DESTROY, ///< Free mutex resources }; /** diff --git a/thirdparties/iphone/include/libavcodec/old_codec_ids.h b/thirdparties/iphone/include/libavcodec/old_codec_ids.h index ded4cc7..e0d3d7e 100755 --- a/thirdparties/iphone/include/libavcodec/old_codec_ids.h +++ b/thirdparties/iphone/include/libavcodec/old_codec_ids.h @@ -29,370 +29,370 @@ * Do not add new items to this list. Use the AVCodecID enum instead. */ - CODEC_ID_NONE = AV_CODEC_ID_NONE, +CODEC_ID_NONE = AV_CODEC_ID_NONE, - /* video codecs */ - CODEC_ID_MPEG1VIDEO, - CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding - CODEC_ID_MPEG2VIDEO_XVMC, - CODEC_ID_H261, - CODEC_ID_H263, - CODEC_ID_RV10, - CODEC_ID_RV20, - CODEC_ID_MJPEG, - CODEC_ID_MJPEGB, - CODEC_ID_LJPEG, - CODEC_ID_SP5X, - CODEC_ID_JPEGLS, - CODEC_ID_MPEG4, - CODEC_ID_RAWVIDEO, - CODEC_ID_MSMPEG4V1, - CODEC_ID_MSMPEG4V2, - CODEC_ID_MSMPEG4V3, - CODEC_ID_WMV1, - CODEC_ID_WMV2, - CODEC_ID_H263P, - CODEC_ID_H263I, - CODEC_ID_FLV1, - CODEC_ID_SVQ1, - CODEC_ID_SVQ3, - CODEC_ID_DVVIDEO, - CODEC_ID_HUFFYUV, - CODEC_ID_CYUV, - CODEC_ID_H264, - CODEC_ID_INDEO3, - CODEC_ID_VP3, - CODEC_ID_THEORA, - CODEC_ID_ASV1, - CODEC_ID_ASV2, - CODEC_ID_FFV1, - CODEC_ID_4XM, - CODEC_ID_VCR1, - CODEC_ID_CLJR, - CODEC_ID_MDEC, - CODEC_ID_ROQ, - CODEC_ID_INTERPLAY_VIDEO, - CODEC_ID_XAN_WC3, - CODEC_ID_XAN_WC4, - CODEC_ID_RPZA, - CODEC_ID_CINEPAK, - CODEC_ID_WS_VQA, - CODEC_ID_MSRLE, - CODEC_ID_MSVIDEO1, - CODEC_ID_IDCIN, - CODEC_ID_8BPS, - CODEC_ID_SMC, - CODEC_ID_FLIC, - CODEC_ID_TRUEMOTION1, - CODEC_ID_VMDVIDEO, - CODEC_ID_MSZH, - CODEC_ID_ZLIB, - CODEC_ID_QTRLE, - CODEC_ID_SNOW, - CODEC_ID_TSCC, - CODEC_ID_ULTI, - CODEC_ID_QDRAW, - CODEC_ID_VIXL, - CODEC_ID_QPEG, - CODEC_ID_PNG, - CODEC_ID_PPM, - CODEC_ID_PBM, - CODEC_ID_PGM, - CODEC_ID_PGMYUV, - CODEC_ID_PAM, - CODEC_ID_FFVHUFF, - CODEC_ID_RV30, - CODEC_ID_RV40, - CODEC_ID_VC1, - CODEC_ID_WMV3, - CODEC_ID_LOCO, - CODEC_ID_WNV1, - CODEC_ID_AASC, - CODEC_ID_INDEO2, - CODEC_ID_FRAPS, - CODEC_ID_TRUEMOTION2, - CODEC_ID_BMP, - CODEC_ID_CSCD, - CODEC_ID_MMVIDEO, - CODEC_ID_ZMBV, - CODEC_ID_AVS, - CODEC_ID_SMACKVIDEO, - CODEC_ID_NUV, - CODEC_ID_KMVC, - CODEC_ID_FLASHSV, - CODEC_ID_CAVS, - CODEC_ID_JPEG2000, - CODEC_ID_VMNC, - CODEC_ID_VP5, - CODEC_ID_VP6, - CODEC_ID_VP6F, - CODEC_ID_TARGA, - CODEC_ID_DSICINVIDEO, - CODEC_ID_TIERTEXSEQVIDEO, - CODEC_ID_TIFF, - CODEC_ID_GIF, - CODEC_ID_DXA, - CODEC_ID_DNXHD, - CODEC_ID_THP, - CODEC_ID_SGI, - CODEC_ID_C93, - CODEC_ID_BETHSOFTVID, - CODEC_ID_PTX, - CODEC_ID_TXD, - CODEC_ID_VP6A, - CODEC_ID_AMV, - CODEC_ID_VB, - CODEC_ID_PCX, - CODEC_ID_SUNRAST, - CODEC_ID_INDEO4, - CODEC_ID_INDEO5, - CODEC_ID_MIMIC, - CODEC_ID_RL2, - CODEC_ID_ESCAPE124, - CODEC_ID_DIRAC, - CODEC_ID_BFI, - CODEC_ID_CMV, - CODEC_ID_MOTIONPIXELS, - CODEC_ID_TGV, - CODEC_ID_TGQ, - CODEC_ID_TQI, - CODEC_ID_AURA, - CODEC_ID_AURA2, - CODEC_ID_V210X, - CODEC_ID_TMV, - CODEC_ID_V210, - CODEC_ID_DPX, - CODEC_ID_MAD, - CODEC_ID_FRWU, - CODEC_ID_FLASHSV2, - CODEC_ID_CDGRAPHICS, - CODEC_ID_R210, - CODEC_ID_ANM, - CODEC_ID_BINKVIDEO, - CODEC_ID_IFF_ILBM, - CODEC_ID_IFF_BYTERUN1, - CODEC_ID_KGV1, - CODEC_ID_YOP, - CODEC_ID_VP8, - CODEC_ID_PICTOR, - CODEC_ID_ANSI, - CODEC_ID_A64_MULTI, - CODEC_ID_A64_MULTI5, - CODEC_ID_R10K, - CODEC_ID_MXPEG, - CODEC_ID_LAGARITH, - CODEC_ID_PRORES, - CODEC_ID_JV, - CODEC_ID_DFA, - CODEC_ID_WMV3IMAGE, - CODEC_ID_VC1IMAGE, - CODEC_ID_UTVIDEO, - CODEC_ID_BMV_VIDEO, - CODEC_ID_VBLE, - CODEC_ID_DXTORY, - CODEC_ID_V410, - CODEC_ID_XWD, - CODEC_ID_CDXL, - CODEC_ID_XBM, - CODEC_ID_ZEROCODEC, - CODEC_ID_MSS1, - CODEC_ID_MSA1, - CODEC_ID_TSCC2, - CODEC_ID_MTS2, - CODEC_ID_CLLC, - CODEC_ID_Y41P = MKBETAG('Y','4','1','P'), - CODEC_ID_ESCAPE130 = MKBETAG('E','1','3','0'), - CODEC_ID_EXR = MKBETAG('0','E','X','R'), - CODEC_ID_AVRP = MKBETAG('A','V','R','P'), +/* video codecs */ +CODEC_ID_MPEG1VIDEO, +CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding +CODEC_ID_MPEG2VIDEO_XVMC, +CODEC_ID_H261, +CODEC_ID_H263, +CODEC_ID_RV10, +CODEC_ID_RV20, +CODEC_ID_MJPEG, +CODEC_ID_MJPEGB, +CODEC_ID_LJPEG, +CODEC_ID_SP5X, +CODEC_ID_JPEGLS, +CODEC_ID_MPEG4, +CODEC_ID_RAWVIDEO, +CODEC_ID_MSMPEG4V1, +CODEC_ID_MSMPEG4V2, +CODEC_ID_MSMPEG4V3, +CODEC_ID_WMV1, +CODEC_ID_WMV2, +CODEC_ID_H263P, +CODEC_ID_H263I, +CODEC_ID_FLV1, +CODEC_ID_SVQ1, +CODEC_ID_SVQ3, +CODEC_ID_DVVIDEO, +CODEC_ID_HUFFYUV, +CODEC_ID_CYUV, +CODEC_ID_H264, +CODEC_ID_INDEO3, +CODEC_ID_VP3, +CODEC_ID_THEORA, +CODEC_ID_ASV1, +CODEC_ID_ASV2, +CODEC_ID_FFV1, +CODEC_ID_4XM, +CODEC_ID_VCR1, +CODEC_ID_CLJR, +CODEC_ID_MDEC, +CODEC_ID_ROQ, +CODEC_ID_INTERPLAY_VIDEO, +CODEC_ID_XAN_WC3, +CODEC_ID_XAN_WC4, +CODEC_ID_RPZA, +CODEC_ID_CINEPAK, +CODEC_ID_WS_VQA, +CODEC_ID_MSRLE, +CODEC_ID_MSVIDEO1, +CODEC_ID_IDCIN, +CODEC_ID_8BPS, +CODEC_ID_SMC, +CODEC_ID_FLIC, +CODEC_ID_TRUEMOTION1, +CODEC_ID_VMDVIDEO, +CODEC_ID_MSZH, +CODEC_ID_ZLIB, +CODEC_ID_QTRLE, +CODEC_ID_SNOW, +CODEC_ID_TSCC, +CODEC_ID_ULTI, +CODEC_ID_QDRAW, +CODEC_ID_VIXL, +CODEC_ID_QPEG, +CODEC_ID_PNG, +CODEC_ID_PPM, +CODEC_ID_PBM, +CODEC_ID_PGM, +CODEC_ID_PGMYUV, +CODEC_ID_PAM, +CODEC_ID_FFVHUFF, +CODEC_ID_RV30, +CODEC_ID_RV40, +CODEC_ID_VC1, +CODEC_ID_WMV3, +CODEC_ID_LOCO, +CODEC_ID_WNV1, +CODEC_ID_AASC, +CODEC_ID_INDEO2, +CODEC_ID_FRAPS, +CODEC_ID_TRUEMOTION2, +CODEC_ID_BMP, +CODEC_ID_CSCD, +CODEC_ID_MMVIDEO, +CODEC_ID_ZMBV, +CODEC_ID_AVS, +CODEC_ID_SMACKVIDEO, +CODEC_ID_NUV, +CODEC_ID_KMVC, +CODEC_ID_FLASHSV, +CODEC_ID_CAVS, +CODEC_ID_JPEG2000, +CODEC_ID_VMNC, +CODEC_ID_VP5, +CODEC_ID_VP6, +CODEC_ID_VP6F, +CODEC_ID_TARGA, +CODEC_ID_DSICINVIDEO, +CODEC_ID_TIERTEXSEQVIDEO, +CODEC_ID_TIFF, +CODEC_ID_GIF, +CODEC_ID_DXA, +CODEC_ID_DNXHD, +CODEC_ID_THP, +CODEC_ID_SGI, +CODEC_ID_C93, +CODEC_ID_BETHSOFTVID, +CODEC_ID_PTX, +CODEC_ID_TXD, +CODEC_ID_VP6A, +CODEC_ID_AMV, +CODEC_ID_VB, +CODEC_ID_PCX, +CODEC_ID_SUNRAST, +CODEC_ID_INDEO4, +CODEC_ID_INDEO5, +CODEC_ID_MIMIC, +CODEC_ID_RL2, +CODEC_ID_ESCAPE124, +CODEC_ID_DIRAC, +CODEC_ID_BFI, +CODEC_ID_CMV, +CODEC_ID_MOTIONPIXELS, +CODEC_ID_TGV, +CODEC_ID_TGQ, +CODEC_ID_TQI, +CODEC_ID_AURA, +CODEC_ID_AURA2, +CODEC_ID_V210X, +CODEC_ID_TMV, +CODEC_ID_V210, +CODEC_ID_DPX, +CODEC_ID_MAD, +CODEC_ID_FRWU, +CODEC_ID_FLASHSV2, +CODEC_ID_CDGRAPHICS, +CODEC_ID_R210, +CODEC_ID_ANM, +CODEC_ID_BINKVIDEO, +CODEC_ID_IFF_ILBM, +CODEC_ID_IFF_BYTERUN1, +CODEC_ID_KGV1, +CODEC_ID_YOP, +CODEC_ID_VP8, +CODEC_ID_PICTOR, +CODEC_ID_ANSI, +CODEC_ID_A64_MULTI, +CODEC_ID_A64_MULTI5, +CODEC_ID_R10K, +CODEC_ID_MXPEG, +CODEC_ID_LAGARITH, +CODEC_ID_PRORES, +CODEC_ID_JV, +CODEC_ID_DFA, +CODEC_ID_WMV3IMAGE, +CODEC_ID_VC1IMAGE, +CODEC_ID_UTVIDEO, +CODEC_ID_BMV_VIDEO, +CODEC_ID_VBLE, +CODEC_ID_DXTORY, +CODEC_ID_V410, +CODEC_ID_XWD, +CODEC_ID_CDXL, +CODEC_ID_XBM, +CODEC_ID_ZEROCODEC, +CODEC_ID_MSS1, +CODEC_ID_MSA1, +CODEC_ID_TSCC2, +CODEC_ID_MTS2, +CODEC_ID_CLLC, +CODEC_ID_Y41P = MKBETAG('Y','4','1','P'), +CODEC_ID_ESCAPE130 = MKBETAG('E','1','3','0'), +CODEC_ID_EXR = MKBETAG('0','E','X','R'), +CODEC_ID_AVRP = MKBETAG('A','V','R','P'), - CODEC_ID_G2M = MKBETAG( 0 ,'G','2','M'), - CODEC_ID_AVUI = MKBETAG('A','V','U','I'), - CODEC_ID_AYUV = MKBETAG('A','Y','U','V'), - CODEC_ID_V308 = MKBETAG('V','3','0','8'), - CODEC_ID_V408 = MKBETAG('V','4','0','8'), - CODEC_ID_YUV4 = MKBETAG('Y','U','V','4'), - CODEC_ID_SANM = MKBETAG('S','A','N','M'), - CODEC_ID_PAF_VIDEO = MKBETAG('P','A','F','V'), +CODEC_ID_G2M = MKBETAG( 0 ,'G','2','M'), +CODEC_ID_AVUI = MKBETAG('A','V','U','I'), +CODEC_ID_AYUV = MKBETAG('A','Y','U','V'), +CODEC_ID_V308 = MKBETAG('V','3','0','8'), +CODEC_ID_V408 = MKBETAG('V','4','0','8'), +CODEC_ID_YUV4 = MKBETAG('Y','U','V','4'), +CODEC_ID_SANM = MKBETAG('S','A','N','M'), +CODEC_ID_PAF_VIDEO = MKBETAG('P','A','F','V'), - /* various PCM "codecs" */ - CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs - CODEC_ID_PCM_S16LE = 0x10000, - CODEC_ID_PCM_S16BE, - CODEC_ID_PCM_U16LE, - CODEC_ID_PCM_U16BE, - CODEC_ID_PCM_S8, - CODEC_ID_PCM_U8, - CODEC_ID_PCM_MULAW, - CODEC_ID_PCM_ALAW, - CODEC_ID_PCM_S32LE, - CODEC_ID_PCM_S32BE, - CODEC_ID_PCM_U32LE, - CODEC_ID_PCM_U32BE, - CODEC_ID_PCM_S24LE, - CODEC_ID_PCM_S24BE, - CODEC_ID_PCM_U24LE, - CODEC_ID_PCM_U24BE, - CODEC_ID_PCM_S24DAUD, - CODEC_ID_PCM_ZORK, - CODEC_ID_PCM_S16LE_PLANAR, - CODEC_ID_PCM_DVD, - CODEC_ID_PCM_F32BE, - CODEC_ID_PCM_F32LE, - CODEC_ID_PCM_F64BE, - CODEC_ID_PCM_F64LE, - CODEC_ID_PCM_BLURAY, - CODEC_ID_PCM_LXF, - CODEC_ID_S302M, - CODEC_ID_PCM_S8_PLANAR, +/* various PCM "codecs" */ +CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs +CODEC_ID_PCM_S16LE = 0x10000, +CODEC_ID_PCM_S16BE, +CODEC_ID_PCM_U16LE, +CODEC_ID_PCM_U16BE, +CODEC_ID_PCM_S8, +CODEC_ID_PCM_U8, +CODEC_ID_PCM_MULAW, +CODEC_ID_PCM_ALAW, +CODEC_ID_PCM_S32LE, +CODEC_ID_PCM_S32BE, +CODEC_ID_PCM_U32LE, +CODEC_ID_PCM_U32BE, +CODEC_ID_PCM_S24LE, +CODEC_ID_PCM_S24BE, +CODEC_ID_PCM_U24LE, +CODEC_ID_PCM_U24BE, +CODEC_ID_PCM_S24DAUD, +CODEC_ID_PCM_ZORK, +CODEC_ID_PCM_S16LE_PLANAR, +CODEC_ID_PCM_DVD, +CODEC_ID_PCM_F32BE, +CODEC_ID_PCM_F32LE, +CODEC_ID_PCM_F64BE, +CODEC_ID_PCM_F64LE, +CODEC_ID_PCM_BLURAY, +CODEC_ID_PCM_LXF, +CODEC_ID_S302M, +CODEC_ID_PCM_S8_PLANAR, - /* various ADPCM codecs */ - CODEC_ID_ADPCM_IMA_QT = 0x11000, - CODEC_ID_ADPCM_IMA_WAV, - CODEC_ID_ADPCM_IMA_DK3, - CODEC_ID_ADPCM_IMA_DK4, - CODEC_ID_ADPCM_IMA_WS, - CODEC_ID_ADPCM_IMA_SMJPEG, - CODEC_ID_ADPCM_MS, - CODEC_ID_ADPCM_4XM, - CODEC_ID_ADPCM_XA, - CODEC_ID_ADPCM_ADX, - CODEC_ID_ADPCM_EA, - CODEC_ID_ADPCM_G726, - CODEC_ID_ADPCM_CT, - CODEC_ID_ADPCM_SWF, - CODEC_ID_ADPCM_YAMAHA, - CODEC_ID_ADPCM_SBPRO_4, - CODEC_ID_ADPCM_SBPRO_3, - CODEC_ID_ADPCM_SBPRO_2, - CODEC_ID_ADPCM_THP, - CODEC_ID_ADPCM_IMA_AMV, - CODEC_ID_ADPCM_EA_R1, - CODEC_ID_ADPCM_EA_R3, - CODEC_ID_ADPCM_EA_R2, - CODEC_ID_ADPCM_IMA_EA_SEAD, - CODEC_ID_ADPCM_IMA_EA_EACS, - CODEC_ID_ADPCM_EA_XAS, - CODEC_ID_ADPCM_EA_MAXIS_XA, - CODEC_ID_ADPCM_IMA_ISS, - CODEC_ID_ADPCM_G722, - CODEC_ID_ADPCM_IMA_APC, - CODEC_ID_VIMA = MKBETAG('V','I','M','A'), +/* various ADPCM codecs */ +CODEC_ID_ADPCM_IMA_QT = 0x11000, +CODEC_ID_ADPCM_IMA_WAV, +CODEC_ID_ADPCM_IMA_DK3, +CODEC_ID_ADPCM_IMA_DK4, +CODEC_ID_ADPCM_IMA_WS, +CODEC_ID_ADPCM_IMA_SMJPEG, +CODEC_ID_ADPCM_MS, +CODEC_ID_ADPCM_4XM, +CODEC_ID_ADPCM_XA, +CODEC_ID_ADPCM_ADX, +CODEC_ID_ADPCM_EA, +CODEC_ID_ADPCM_G726, +CODEC_ID_ADPCM_CT, +CODEC_ID_ADPCM_SWF, +CODEC_ID_ADPCM_YAMAHA, +CODEC_ID_ADPCM_SBPRO_4, +CODEC_ID_ADPCM_SBPRO_3, +CODEC_ID_ADPCM_SBPRO_2, +CODEC_ID_ADPCM_THP, +CODEC_ID_ADPCM_IMA_AMV, +CODEC_ID_ADPCM_EA_R1, +CODEC_ID_ADPCM_EA_R3, +CODEC_ID_ADPCM_EA_R2, +CODEC_ID_ADPCM_IMA_EA_SEAD, +CODEC_ID_ADPCM_IMA_EA_EACS, +CODEC_ID_ADPCM_EA_XAS, +CODEC_ID_ADPCM_EA_MAXIS_XA, +CODEC_ID_ADPCM_IMA_ISS, +CODEC_ID_ADPCM_G722, +CODEC_ID_ADPCM_IMA_APC, +CODEC_ID_VIMA = MKBETAG('V','I','M','A'), - /* AMR */ - CODEC_ID_AMR_NB = 0x12000, - CODEC_ID_AMR_WB, +/* AMR */ +CODEC_ID_AMR_NB = 0x12000, +CODEC_ID_AMR_WB, - /* RealAudio codecs*/ - CODEC_ID_RA_144 = 0x13000, - CODEC_ID_RA_288, +/* RealAudio codecs*/ +CODEC_ID_RA_144 = 0x13000, +CODEC_ID_RA_288, - /* various DPCM codecs */ - CODEC_ID_ROQ_DPCM = 0x14000, - CODEC_ID_INTERPLAY_DPCM, - CODEC_ID_XAN_DPCM, - CODEC_ID_SOL_DPCM, +/* various DPCM codecs */ +CODEC_ID_ROQ_DPCM = 0x14000, +CODEC_ID_INTERPLAY_DPCM, +CODEC_ID_XAN_DPCM, +CODEC_ID_SOL_DPCM, - /* audio codecs */ - CODEC_ID_MP2 = 0x15000, - CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3 - CODEC_ID_AAC, - CODEC_ID_AC3, - CODEC_ID_DTS, - CODEC_ID_VORBIS, - CODEC_ID_DVAUDIO, - CODEC_ID_WMAV1, - CODEC_ID_WMAV2, - CODEC_ID_MACE3, - CODEC_ID_MACE6, - CODEC_ID_VMDAUDIO, - CODEC_ID_FLAC, - CODEC_ID_MP3ADU, - CODEC_ID_MP3ON4, - CODEC_ID_SHORTEN, - CODEC_ID_ALAC, - CODEC_ID_WESTWOOD_SND1, - CODEC_ID_GSM, ///< as in Berlin toast format - CODEC_ID_QDM2, - CODEC_ID_COOK, - CODEC_ID_TRUESPEECH, - CODEC_ID_TTA, - CODEC_ID_SMACKAUDIO, - CODEC_ID_QCELP, - CODEC_ID_WAVPACK, - CODEC_ID_DSICINAUDIO, - CODEC_ID_IMC, - CODEC_ID_MUSEPACK7, - CODEC_ID_MLP, - CODEC_ID_GSM_MS, /* as found in WAV */ - CODEC_ID_ATRAC3, - CODEC_ID_VOXWARE, - CODEC_ID_APE, - CODEC_ID_NELLYMOSER, - CODEC_ID_MUSEPACK8, - CODEC_ID_SPEEX, - CODEC_ID_WMAVOICE, - CODEC_ID_WMAPRO, - CODEC_ID_WMALOSSLESS, - CODEC_ID_ATRAC3P, - CODEC_ID_EAC3, - CODEC_ID_SIPR, - CODEC_ID_MP1, - CODEC_ID_TWINVQ, - CODEC_ID_TRUEHD, - CODEC_ID_MP4ALS, - CODEC_ID_ATRAC1, - CODEC_ID_BINKAUDIO_RDFT, - CODEC_ID_BINKAUDIO_DCT, - CODEC_ID_AAC_LATM, - CODEC_ID_QDMC, - CODEC_ID_CELT, - CODEC_ID_G723_1, - CODEC_ID_G729, - CODEC_ID_8SVX_EXP, - CODEC_ID_8SVX_FIB, - CODEC_ID_BMV_AUDIO, - CODEC_ID_RALF, - CODEC_ID_IAC, - CODEC_ID_ILBC, - CODEC_ID_FFWAVESYNTH = MKBETAG('F','F','W','S'), - CODEC_ID_8SVX_RAW = MKBETAG('8','S','V','X'), - CODEC_ID_SONIC = MKBETAG('S','O','N','C'), - CODEC_ID_SONIC_LS = MKBETAG('S','O','N','L'), - CODEC_ID_PAF_AUDIO = MKBETAG('P','A','F','A'), - CODEC_ID_OPUS = MKBETAG('O','P','U','S'), +/* audio codecs */ +CODEC_ID_MP2 = 0x15000, +CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3 +CODEC_ID_AAC, +CODEC_ID_AC3, +CODEC_ID_DTS, +CODEC_ID_VORBIS, +CODEC_ID_DVAUDIO, +CODEC_ID_WMAV1, +CODEC_ID_WMAV2, +CODEC_ID_MACE3, +CODEC_ID_MACE6, +CODEC_ID_VMDAUDIO, +CODEC_ID_FLAC, +CODEC_ID_MP3ADU, +CODEC_ID_MP3ON4, +CODEC_ID_SHORTEN, +CODEC_ID_ALAC, +CODEC_ID_WESTWOOD_SND1, +CODEC_ID_GSM, ///< as in Berlin toast format +CODEC_ID_QDM2, +CODEC_ID_COOK, +CODEC_ID_TRUESPEECH, +CODEC_ID_TTA, +CODEC_ID_SMACKAUDIO, +CODEC_ID_QCELP, +CODEC_ID_WAVPACK, +CODEC_ID_DSICINAUDIO, +CODEC_ID_IMC, +CODEC_ID_MUSEPACK7, +CODEC_ID_MLP, +CODEC_ID_GSM_MS, /* as found in WAV */ +CODEC_ID_ATRAC3, +CODEC_ID_VOXWARE, +CODEC_ID_APE, +CODEC_ID_NELLYMOSER, +CODEC_ID_MUSEPACK8, +CODEC_ID_SPEEX, +CODEC_ID_WMAVOICE, +CODEC_ID_WMAPRO, +CODEC_ID_WMALOSSLESS, +CODEC_ID_ATRAC3P, +CODEC_ID_EAC3, +CODEC_ID_SIPR, +CODEC_ID_MP1, +CODEC_ID_TWINVQ, +CODEC_ID_TRUEHD, +CODEC_ID_MP4ALS, +CODEC_ID_ATRAC1, +CODEC_ID_BINKAUDIO_RDFT, +CODEC_ID_BINKAUDIO_DCT, +CODEC_ID_AAC_LATM, +CODEC_ID_QDMC, +CODEC_ID_CELT, +CODEC_ID_G723_1, +CODEC_ID_G729, +CODEC_ID_8SVX_EXP, +CODEC_ID_8SVX_FIB, +CODEC_ID_BMV_AUDIO, +CODEC_ID_RALF, +CODEC_ID_IAC, +CODEC_ID_ILBC, +CODEC_ID_FFWAVESYNTH = MKBETAG('F','F','W','S'), +CODEC_ID_8SVX_RAW = MKBETAG('8','S','V','X'), +CODEC_ID_SONIC = MKBETAG('S','O','N','C'), +CODEC_ID_SONIC_LS = MKBETAG('S','O','N','L'), +CODEC_ID_PAF_AUDIO = MKBETAG('P','A','F','A'), +CODEC_ID_OPUS = MKBETAG('O','P','U','S'), - /* subtitle codecs */ - CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs. - CODEC_ID_DVD_SUBTITLE = 0x17000, - CODEC_ID_DVB_SUBTITLE, - CODEC_ID_TEXT, ///< raw UTF-8 text - CODEC_ID_XSUB, - CODEC_ID_SSA, - CODEC_ID_MOV_TEXT, - CODEC_ID_HDMV_PGS_SUBTITLE, - CODEC_ID_DVB_TELETEXT, - CODEC_ID_SRT, - CODEC_ID_MICRODVD = MKBETAG('m','D','V','D'), - CODEC_ID_EIA_608 = MKBETAG('c','6','0','8'), - CODEC_ID_JACOSUB = MKBETAG('J','S','U','B'), - CODEC_ID_SAMI = MKBETAG('S','A','M','I'), - CODEC_ID_REALTEXT = MKBETAG('R','T','X','T'), - CODEC_ID_SUBVIEWER = MKBETAG('S','u','b','V'), +/* subtitle codecs */ +CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs. +CODEC_ID_DVD_SUBTITLE = 0x17000, +CODEC_ID_DVB_SUBTITLE, +CODEC_ID_TEXT, ///< raw UTF-8 text +CODEC_ID_XSUB, +CODEC_ID_SSA, +CODEC_ID_MOV_TEXT, +CODEC_ID_HDMV_PGS_SUBTITLE, +CODEC_ID_DVB_TELETEXT, +CODEC_ID_SRT, +CODEC_ID_MICRODVD = MKBETAG('m','D','V','D'), +CODEC_ID_EIA_608 = MKBETAG('c','6','0','8'), +CODEC_ID_JACOSUB = MKBETAG('J','S','U','B'), +CODEC_ID_SAMI = MKBETAG('S','A','M','I'), +CODEC_ID_REALTEXT = MKBETAG('R','T','X','T'), +CODEC_ID_SUBVIEWER = MKBETAG('S','u','b','V'), - /* other specific kind of codecs (generally used for attachments) */ - CODEC_ID_FIRST_UNKNOWN = 0x18000, ///< A dummy ID pointing at the start of various fake codecs. - CODEC_ID_TTF = 0x18000, - CODEC_ID_BINTEXT = MKBETAG('B','T','X','T'), - CODEC_ID_XBIN = MKBETAG('X','B','I','N'), - CODEC_ID_IDF = MKBETAG( 0 ,'I','D','F'), - CODEC_ID_OTF = MKBETAG( 0 ,'O','T','F'), +/* other specific kind of codecs (generally used for attachments) */ +CODEC_ID_FIRST_UNKNOWN = 0x18000, ///< A dummy ID pointing at the start of various fake codecs. +CODEC_ID_TTF = 0x18000, +CODEC_ID_BINTEXT = MKBETAG('B','T','X','T'), +CODEC_ID_XBIN = MKBETAG('X','B','I','N'), +CODEC_ID_IDF = MKBETAG( 0 ,'I','D','F'), +CODEC_ID_OTF = MKBETAG( 0 ,'O','T','F'), - CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like CODEC_ID_NONE) but lavf should attempt to identify it +CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like CODEC_ID_NONE) but lavf should attempt to identify it - CODEC_ID_MPEG2TS = 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS +CODEC_ID_MPEG2TS = 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS * stream (only used by libavformat) */ - CODEC_ID_MPEG4SYSTEMS = 0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems + CODEC_ID_MPEG4SYSTEMS = 0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems * stream (only used by libavformat) */ - CODEC_ID_FFMETADATA = 0x21000, ///< Dummy codec for streams containing only metadata information. + CODEC_ID_FFMETADATA = 0x21000, ///< Dummy codec for streams containing only metadata information. #endif /* AVCODEC_OLD_CODEC_IDS_H */ diff --git a/thirdparties/iphone/include/libavcodec/opt.h b/thirdparties/iphone/include/libavcodec/opt.h index 9f0da72..5e58351 100755 --- a/thirdparties/iphone/include/libavcodec/opt.h +++ b/thirdparties/iphone/include/libavcodec/opt.h @@ -30,7 +30,7 @@ #include "libavutil/rational.h" #include "avcodec.h" -enum AVOptionType{ +enum AVOptionType { FF_OPT_TYPE_FLAGS, FF_OPT_TYPE_INT, FF_OPT_TYPE_INT64, @@ -119,14 +119,14 @@ typedef struct AVOption2 { double max; ///< maximum valid value for the option int flags; -/* -#define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding -#define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding -#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ... -#define AV_OPT_FLAG_AUDIO_PARAM 8 -#define AV_OPT_FLAG_VIDEO_PARAM 16 -#define AV_OPT_FLAG_SUBTITLE_PARAM 32 -*/ + /* + #define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding + #define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding + #define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ... + #define AV_OPT_FLAG_AUDIO_PARAM 8 + #define AV_OPT_FLAG_VIDEO_PARAM 16 + #define AV_OPT_FLAG_SUBTITLE_PARAM 32 + */ //FIXME think about enc-audio, ... style flags /** diff --git a/thirdparties/iphone/include/libavcodec/xvmc.h b/thirdparties/iphone/include/libavcodec/xvmc.h index b2bf518..373d9aa 100755 --- a/thirdparties/iphone/include/libavcodec/xvmc.h +++ b/thirdparties/iphone/include/libavcodec/xvmc.h @@ -101,8 +101,8 @@ struct xvmc_pix_fmt { */ XvMCSurface* p_surface; -/** Set by the decoder before calling ff_draw_horiz_band(), - needed by the XvMCRenderSurface function. */ + /** Set by the decoder before calling ff_draw_horiz_band(), + needed by the XvMCRenderSurface function. */ //@{ /** Pointer to the surface used as past reference - application - unchanged diff --git a/thirdparties/iphone/include/libavfilter/avcodec.h b/thirdparties/iphone/include/libavfilter/avcodec.h index 5f4209a..8dee966 100755 --- a/thirdparties/iphone/include/libavfilter/avcodec.h +++ b/thirdparties/iphone/include/libavfilter/avcodec.h @@ -63,7 +63,7 @@ AVFilterBufferRef *avfilter_get_video_buffer_ref_from_frame(const AVFrame *frame * @param perms permissions to assign to the new buffer reference */ AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_frame(const AVFrame *frame, - int perms); + int perms); /** * Create and return a buffer reference from the data and properties @@ -72,8 +72,8 @@ AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_frame(const AVFrame *frame * @param perms permissions to assign to the new buffer reference */ AVFilterBufferRef *avfilter_get_buffer_ref_from_frame(enum AVMediaType type, - const AVFrame *frame, - int perms); + const AVFrame *frame, + int perms); #ifdef FF_API_FILL_FRAME /** @@ -87,7 +87,7 @@ AVFilterBufferRef *avfilter_get_buffer_ref_from_frame(enum AVMediaType type, */ attribute_deprecated int avfilter_fill_frame_from_audio_buffer_ref(AVFrame *frame, - const AVFilterBufferRef *samplesref); + const AVFilterBufferRef *samplesref); /** * Fill an AVFrame with the information stored in picref. @@ -100,7 +100,7 @@ int avfilter_fill_frame_from_audio_buffer_ref(AVFrame *frame, */ attribute_deprecated int avfilter_fill_frame_from_video_buffer_ref(AVFrame *frame, - const AVFilterBufferRef *picref); + const AVFilterBufferRef *picref); /** * Fill an AVFrame with information stored in ref. diff --git a/thirdparties/iphone/include/libavfilter/avfilter.h b/thirdparties/iphone/include/libavfilter/avfilter.h index d66bc00..29aa562 100755 --- a/thirdparties/iphone/include/libavfilter/avfilter.h +++ b/thirdparties/iphone/include/libavfilter/avfilter.h @@ -753,7 +753,7 @@ int avfilter_config_links(AVFilterContext *filter); */ AVFilterBufferRef * avfilter_get_video_buffer_ref_from_arrays(uint8_t * const data[4], const int linesize[4], int perms, - int w, int h, enum PixelFormat format); + int w, int h, enum PixelFormat format); /** * Create an audio buffer reference wrapped around an already @@ -767,11 +767,11 @@ avfilter_get_video_buffer_ref_from_arrays(uint8_t * const data[4], const int lin * @param channel_layout the channel layout of the buffer */ AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_arrays(uint8_t **data, - int linesize, - int perms, - int nb_samples, - enum AVSampleFormat sample_fmt, - uint64_t channel_layout); + int linesize, + int perms, + int nb_samples, + enum AVSampleFormat sample_fmt, + uint64_t channel_layout); #define AVFILTER_CMD_FLAG_ONE 1 ///< Stop once a filter understood the command (for target=all for example), fast filters are favored automatically diff --git a/thirdparties/iphone/include/libavformat/avformat.h b/thirdparties/iphone/include/libavformat/avformat.h index f7779e7..3245b22 100755 --- a/thirdparties/iphone/include/libavformat/avformat.h +++ b/thirdparties/iphone/include/libavformat/avformat.h @@ -360,9 +360,9 @@ typedef struct AVProbeData { #else #define AVFMT_TS_NONSTRICT 0x20000 #endif - /**< Format does not require strictly - increasing timestamps, but they must - still be monotonic */ +/**< Format does not require strictly + increasing timestamps, but they must + still be monotonic */ #define AVFMT_SEEK_TO_PTS 0x4000000 /**< Seeking is based on PTS */ @@ -1311,7 +1311,7 @@ AVProgram *av_new_program(AVFormatContext *s, int id); #if FF_API_PKT_DUMP attribute_deprecated void av_pkt_dump(FILE *f, AVPacket *pkt, int dump_payload); attribute_deprecated void av_pkt_dump_log(void *avcl, int level, AVPacket *pkt, - int dump_payload); + int dump_payload); #endif #if FF_API_ALLOC_OUTPUT_CONTEXT @@ -1320,8 +1320,8 @@ attribute_deprecated void av_pkt_dump_log(void *avcl, int level, AVPacket *pkt, */ attribute_deprecated AVFormatContext *avformat_alloc_output_context(const char *format, - AVOutputFormat *oformat, - const char *filename); + AVOutputFormat *oformat, + const char *filename); #endif /** @@ -1768,8 +1768,8 @@ AVOutputFormat *av_guess_format(const char *short_name, * Guess the codec ID based upon muxer and filename. */ enum AVCodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name, - const char *filename, const char *mime_type, - enum AVMediaType type); + const char *filename, const char *mime_type, + enum AVMediaType type); /** * Get timing information for the data currently output. diff --git a/thirdparties/iphone/include/libavformat/avio.h b/thirdparties/iphone/include/libavformat/avio.h index b16d26f..e298363 100755 --- a/thirdparties/iphone/include/libavformat/avio.h +++ b/thirdparties/iphone/include/libavformat/avio.h @@ -120,26 +120,26 @@ typedef struct AVIOContext { * max filesize, used to limit allocations * This field is internal to libavformat and access from outside is not allowed. */ - int64_t maxsize; + int64_t maxsize; - /** - * avio_read and avio_write should if possible be satisfied directly - * instead of going through a buffer, and avio_seek will always - * call the underlying seek function directly. - */ - int direct; + /** + * avio_read and avio_write should if possible be satisfied directly + * instead of going through a buffer, and avio_seek will always + * call the underlying seek function directly. + */ + int direct; /** * Bytes read statistic * This field is internal to libavformat and access from outside is not allowed. */ - int64_t bytes_read; + int64_t bytes_read; /** * seek statistic * This field is internal to libavformat and access from outside is not allowed. */ - int seek_count; + int seek_count; } AVIOContext; /* unbuffered I/O */ @@ -177,13 +177,13 @@ int avio_check(const char *url, int flags); * @return Allocated AVIOContext or NULL on failure. */ AVIOContext *avio_alloc_context( - unsigned char *buffer, - int buffer_size, - int write_flag, - void *opaque, - int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), - int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), - int64_t (*seek)(void *opaque, int64_t offset, int whence)); + unsigned char *buffer, + int buffer_size, + int write_flag, + void *opaque, + int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), + int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), + int64_t (*seek)(void *opaque, int64_t offset, int whence)); void avio_w8(AVIOContext *s, int b); void avio_write(AVIOContext *s, const unsigned char *buf, int size); diff --git a/thirdparties/iphone/include/libavutil/avstring.h b/thirdparties/iphone/include/libavutil/avstring.h index f73d6e7..30b8dc5 100755 --- a/thirdparties/iphone/include/libavutil/avstring.h +++ b/thirdparties/iphone/include/libavutil/avstring.h @@ -175,8 +175,9 @@ char *av_strtok(char *s, const char *delim, char **saveptr); */ static inline int av_toupper(int c) { - if (c >= 'a' && c <= 'z') + if (c >= 'a' && c <= 'z') { c ^= 0x20; + } return c; } @@ -185,8 +186,9 @@ static inline int av_toupper(int c) */ static inline int av_tolower(int c) { - if (c >= 'A' && c <= 'Z') + if (c >= 'A' && c <= 'Z') { c ^= 0x20; + } return c; } diff --git a/thirdparties/iphone/include/libavutil/base64.h b/thirdparties/iphone/include/libavutil/base64.h index b095576..d262295 100755 --- a/thirdparties/iphone/include/libavutil/base64.h +++ b/thirdparties/iphone/include/libavutil/base64.h @@ -58,8 +58,8 @@ char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size); */ #define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1) - /** - * @} - */ +/** + * @} + */ #endif /* AVUTIL_BASE64_H */ diff --git a/thirdparties/iphone/include/libavutil/bprint.h b/thirdparties/iphone/include/libavutil/bprint.h index 2bef18d..db7a6d3 100755 --- a/thirdparties/iphone/include/libavutil/bprint.h +++ b/thirdparties/iphone/include/libavutil/bprint.h @@ -73,12 +73,12 @@ */ typedef struct AVBPrint { FF_PAD_STRUCTURE(1024, - char *str; /** string so far */ - unsigned len; /** length so far */ - unsigned size; /** allocated memory */ - unsigned size_max; /** maximum allocated memory */ - char reserved_internal_buffer[1]; - ) + char *str; /** string so far */ + unsigned len; /** length so far */ + unsigned size; /** allocated memory */ + unsigned size_max; /** maximum allocated memory */ + char reserved_internal_buffer[1]; + ) } AVBPrint; /** diff --git a/thirdparties/iphone/include/libavutil/common.h b/thirdparties/iphone/include/libavutil/common.h index 3e3baab..b7ab0e9 100755 --- a/thirdparties/iphone/include/libavutil/common.h +++ b/thirdparties/iphone/include/libavutil/common.h @@ -114,9 +114,15 @@ static av_always_inline av_const int av_log2_16bit_c(unsigned int v) */ static av_always_inline av_const int av_clip_c(int a, int amin, int amax) { - if (a < amin) return amin; - else if (a > amax) return amax; - else return a; + if (a < amin) { + return amin; + } + else if (a > amax) { + return amax; + } + else { + return a; + } } /** @@ -126,8 +132,12 @@ static av_always_inline av_const int av_clip_c(int a, int amin, int amax) */ static av_always_inline av_const uint8_t av_clip_uint8_c(int a) { - if (a&(~0xFF)) return (-a)>>31; - else return a; + if (a&(~0xFF)) { + return (-a)>>31; + } + else { + return a; + } } /** @@ -137,8 +147,12 @@ static av_always_inline av_const uint8_t av_clip_uint8_c(int a) */ static av_always_inline av_const int8_t av_clip_int8_c(int a) { - if ((a+0x80) & ~0xFF) return (a>>31) ^ 0x7F; - else return a; + if ((a+0x80) & ~0xFF) { + return (a>>31) ^ 0x7F; + } + else { + return a; + } } /** @@ -148,8 +162,12 @@ static av_always_inline av_const int8_t av_clip_int8_c(int a) */ static av_always_inline av_const uint16_t av_clip_uint16_c(int a) { - if (a&(~0xFFFF)) return (-a)>>31; - else return a; + if (a&(~0xFFFF)) { + return (-a)>>31; + } + else { + return a; + } } /** @@ -159,8 +177,12 @@ static av_always_inline av_const uint16_t av_clip_uint16_c(int a) */ static av_always_inline av_const int16_t av_clip_int16_c(int a) { - if ((a+0x8000) & ~0xFFFF) return (a>>31) ^ 0x7FFF; - else return a; + if ((a+0x8000) & ~0xFFFF) { + return (a>>31) ^ 0x7FFF; + } + else { + return a; + } } /** @@ -170,8 +192,12 @@ static av_always_inline av_const int16_t av_clip_int16_c(int a) */ static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a) { - if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) return (a>>63) ^ 0x7FFFFFFF; - else return (int32_t)a; + if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) { + return (a>>63) ^ 0x7FFFFFFF; + } + else { + return (int32_t)a; + } } /** @@ -182,8 +208,12 @@ static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a) */ static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p) { - if (a & ~((1<<p) - 1)) return -a >> 31 & ((1<<p) - 1); - else return a; + if (a & ~((1<<p) - 1)) { + return -a >> 31 & ((1<<p) - 1); + } + else { + return a; + } } /** @@ -219,9 +249,15 @@ static av_always_inline int av_sat_dadd32_c(int a, int b) */ static av_always_inline av_const float av_clipf_c(float a, float amin, float amax) { - if (a < amin) return amin; - else if (a > amax) return amax; - else return a; + if (a < amin) { + return amin; + } + else if (a > amax) { + return amax; + } + else { + return a; + } } /** Compute ceil(log2(x)). @@ -306,7 +342,7 @@ static av_always_inline av_const int av_popcount64_c(uint64_t x) val += (hi<<10) + 0x10000;\ }\ }\ - + /** * @def PUT_UTF8(val, tmp, PUT_BYTE) * Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long). @@ -370,7 +406,7 @@ static av_always_inline av_const int av_popcount64_c(uint64_t x) PUT_16BIT\ }\ }\ - + #include "mem.h" diff --git a/thirdparties/iphone/include/libavutil/cpu.h b/thirdparties/iphone/include/libavutil/cpu.h index de15ee3..30b3d89 100755 --- a/thirdparties/iphone/include/libavutil/cpu.h +++ b/thirdparties/iphone/include/libavutil/cpu.h @@ -25,7 +25,7 @@ #define AV_CPU_FLAG_FORCE 0x80000000 /* force usage of selected flags (OR) */ - /* lower 16 bits - CPU features */ +/* lower 16 bits - CPU features */ #define AV_CPU_FLAG_MMX 0x0001 ///< standard MMX #define AV_CPU_FLAG_MMXEXT 0x0002 ///< SSE integer functions or AMD MMX ext #define AV_CPU_FLAG_MMX2 0x0002 ///< SSE integer functions or AMD MMX ext diff --git a/thirdparties/iphone/include/libavutil/crc.h b/thirdparties/iphone/include/libavutil/crc.h index 1265054..5e04de6 100755 --- a/thirdparties/iphone/include/libavutil/crc.h +++ b/thirdparties/iphone/include/libavutil/crc.h @@ -34,7 +34,7 @@ typedef enum { AV_CRC_32_IEEE, AV_CRC_32_IEEE_LE, /*< reversed bitorder version of AV_CRC_32_IEEE */ AV_CRC_MAX, /*< Not part of public API! Do not use outside libavutil. */ -}AVCRCId; +} AVCRCId; int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size); const AVCRC *av_crc_get_table(AVCRCId crc_id); diff --git a/thirdparties/iphone/include/libavutil/fifo.h b/thirdparties/iphone/include/libavutil/fifo.h index ff66c95..eba8941 100755 --- a/thirdparties/iphone/include/libavutil/fifo.h +++ b/thirdparties/iphone/include/libavutil/fifo.h @@ -134,10 +134,12 @@ void av_fifo_drain(AVFifoBuffer *f, int size); static inline uint8_t *av_fifo_peek2(const AVFifoBuffer *f, int offs) { uint8_t *ptr = f->rptr + offs; - if (ptr >= f->end) + if (ptr >= f->end) { ptr = f->buffer + (ptr - f->end); - else if (ptr < f->buffer) + } + else if (ptr < f->buffer) { ptr = f->end - (f->buffer - ptr); + } return ptr; } diff --git a/thirdparties/iphone/include/libavutil/intreadwrite.h b/thirdparties/iphone/include/libavutil/intreadwrite.h index 7c68ead..cf0e3f8 100755 --- a/thirdparties/iphone/include/libavutil/intreadwrite.h +++ b/thirdparties/iphone/include/libavutil/intreadwrite.h @@ -185,9 +185,15 @@ typedef union { #if defined(__GNUC__) && !defined(__TI_COMPILER_VERSION__) -union unaligned_64 { uint64_t l; } __attribute__((packed)) av_alias; -union unaligned_32 { uint32_t l; } __attribute__((packed)) av_alias; -union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias; +union unaligned_64 { + uint64_t l; +} __attribute__((packed)) av_alias; +union unaligned_32 { + uint32_t l; +} __attribute__((packed)) av_alias; +union unaligned_16 { + uint16_t l; +} __attribute__((packed)) av_alias; # define AV_RN(s, p) (((const union unaligned_##s *) (p))->l) # define AV_WN(s, p, v) ((((union unaligned_##s *) (p))->l) = (v)) diff --git a/thirdparties/iphone/include/libavutil/lfg.h b/thirdparties/iphone/include/libavutil/lfg.h index 854ffce..8b4dfd5 100755 --- a/thirdparties/iphone/include/libavutil/lfg.h +++ b/thirdparties/iphone/include/libavutil/lfg.h @@ -35,7 +35,8 @@ void av_lfg_init(AVLFG *c, unsigned int seed); * Please also consider a simple LCG like state= state*1664525+1013904223, * it may be good enough and faster for your specific use case. */ -static inline unsigned int av_lfg_get(AVLFG *c){ +static inline unsigned int av_lfg_get(AVLFG *c) +{ c->state[c->index & 63] = c->state[(c->index-24) & 63] + c->state[(c->index-55) & 63]; return c->state[c->index++ & 63]; } @@ -45,7 +46,8 @@ static inline unsigned int av_lfg_get(AVLFG *c){ * * Please also consider av_lfg_get() above, it is faster. */ -static inline unsigned int av_mlfg_get(AVLFG *c){ +static inline unsigned int av_mlfg_get(AVLFG *c) +{ unsigned int a= c->state[(c->index-55) & 63]; unsigned int b= c->state[(c->index-24) & 63]; return c->state[c->index++ & 63] = 2*a*b+a+b; diff --git a/thirdparties/iphone/include/libavutil/log.h b/thirdparties/iphone/include/libavutil/log.h index ba7315f..303a863 100755 --- a/thirdparties/iphone/include/libavutil/log.h +++ b/thirdparties/iphone/include/libavutil/log.h @@ -38,7 +38,7 @@ typedef enum { AV_CLASS_CATEGORY_SWSCALER, AV_CLASS_CATEGORY_SWRESAMPLER, AV_CLASS_CATEGORY_NB, ///< not part of ABI/API -}AVClassCategory; +} AVClassCategory; /** * Describe the class of an AVClass context structure. That is an diff --git a/thirdparties/iphone/include/libavutil/mem.h b/thirdparties/iphone/include/libavutil/mem.h index 212dbf1..fefe6fa 100755 --- a/thirdparties/iphone/include/libavutil/mem.h +++ b/thirdparties/iphone/include/libavutil/mem.h @@ -39,36 +39,36 @@ #if defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1110 || defined(__SUNPRO_C) - #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v - #define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v +#define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v +#define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v #elif defined(__TI_COMPILER_VERSION__) - #define DECLARE_ALIGNED(n,t,v) \ +#define DECLARE_ALIGNED(n,t,v) \ AV_PRAGMA(DATA_ALIGN(v,n)) \ t __attribute__((aligned(n))) v - #define DECLARE_ASM_CONST(n,t,v) \ +#define DECLARE_ASM_CONST(n,t,v) \ AV_PRAGMA(DATA_ALIGN(v,n)) \ static const t __attribute__((aligned(n))) v #elif defined(__GNUC__) - #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v - #define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v +#define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v +#define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v #elif defined(_MSC_VER) - #define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v - #define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v +#define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v +#define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v #else - #define DECLARE_ALIGNED(n,t,v) t v - #define DECLARE_ASM_CONST(n,t,v) static const t v +#define DECLARE_ALIGNED(n,t,v) t v +#define DECLARE_ASM_CONST(n,t,v) static const t v #endif #if AV_GCC_VERSION_AT_LEAST(3,1) - #define av_malloc_attrib __attribute__((__malloc__)) +#define av_malloc_attrib __attribute__((__malloc__)) #else - #define av_malloc_attrib +#define av_malloc_attrib #endif #if AV_GCC_VERSION_AT_LEAST(4,3) - #define av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__))) +#define av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__))) #else - #define av_alloc_size(...) +#define av_alloc_size(...) #endif /** @@ -92,8 +92,9 @@ void *av_malloc(size_t size) av_malloc_attrib av_alloc_size(1); */ av_alloc_size(1,2) static inline void *av_malloc_array(size_t nmemb, size_t size) { - if (size <= 0 || nmemb >= INT_MAX / size) + if (size <= 0 || nmemb >= INT_MAX / size) { return NULL; + } return av_malloc(nmemb * size); } @@ -165,8 +166,9 @@ void *av_calloc(size_t nmemb, size_t size) av_malloc_attrib; */ av_alloc_size(1,2) static inline void *av_mallocz_array(size_t nmemb, size_t size) { - if (size <= 0 || nmemb >= INT_MAX / size) + if (size <= 0 || nmemb >= INT_MAX / size) { return NULL; + } return av_mallocz(nmemb * size); } @@ -205,8 +207,9 @@ static inline int av_size_mult(size_t a, size_t b, size_t *r) size_t t = a * b; /* Hack inspired from glibc: only try the division if nelem and elsize * are both greater than sqrt(SIZE_MAX). */ - if ((a | b) >= ((size_t)1 << (sizeof(size_t) * 4)) && a && t / a != b) + if ((a | b) >= ((size_t)1 << (sizeof(size_t) * 4)) && a && t / a != b) { return AVERROR(EINVAL); + } *r = t; return 0; } diff --git a/thirdparties/iphone/include/libavutil/opt.h b/thirdparties/iphone/include/libavutil/opt.h index 285d854..f3bdae3 100755 --- a/thirdparties/iphone/include/libavutil/opt.h +++ b/thirdparties/iphone/include/libavutil/opt.h @@ -215,7 +215,7 @@ * before the file is actually opened. */ -enum AVOptionType{ +enum AVOptionType { AV_OPT_TYPE_FLAGS, AV_OPT_TYPE_INT, AV_OPT_TYPE_INT64, diff --git a/thirdparties/iphone/include/libavutil/pixdesc.h b/thirdparties/iphone/include/libavutil/pixdesc.h index 1fa916a..851b604 100755 --- a/thirdparties/iphone/include/libavutil/pixdesc.h +++ b/thirdparties/iphone/include/libavutil/pixdesc.h @@ -25,7 +25,7 @@ #include <inttypes.h> #include "pixfmt.h" -typedef struct AVComponentDescriptor{ +typedef struct AVComponentDescriptor { uint16_t plane :2; ///< which of the 4 planes contains the component /** @@ -41,7 +41,7 @@ typedef struct AVComponentDescriptor{ uint16_t offset_plus1 :3; uint16_t shift :3; ///< number of least significant bits that must be shifted away to get the value uint16_t depth_minus1 :4; ///< number of bits in the component minus 1 -}AVComponentDescriptor; +} AVComponentDescriptor; /** * Descriptor that unambiguously describes how the bits of a pixel are @@ -52,7 +52,7 @@ typedef struct AVComponentDescriptor{ * and all the YUV variants) AVPixFmtDescriptor just stores how values * are stored not what these values represent. */ -typedef struct AVPixFmtDescriptor{ +typedef struct AVPixFmtDescriptor { const char *name; uint8_t nb_components; ///< The number of components each pixel has, (1-4) @@ -84,7 +84,7 @@ typedef struct AVPixFmtDescriptor{ * otherwise 0 is luma, 1 is chroma-U and 2 is chroma-V. */ AVComponentDescriptor comp[4]; -}AVPixFmtDescriptor; +} AVPixFmtDescriptor; #define PIX_FMT_BE 1 ///< Pixel format is big-endian. #define PIX_FMT_PAL 2 ///< Pixel format has a palette in data[1], values are indexes in this palette. diff --git a/thirdparties/iphone/include/libavutil/rational.h b/thirdparties/iphone/include/libavutil/rational.h index 417e29e..84ce7a0 100755 --- a/thirdparties/iphone/include/libavutil/rational.h +++ b/thirdparties/iphone/include/libavutil/rational.h @@ -40,7 +40,7 @@ /** * rational number numerator/denominator */ -typedef struct AVRational{ +typedef struct AVRational { int num; ///< numerator int den; ///< denominator } AVRational; @@ -52,13 +52,22 @@ typedef struct AVRational{ * @return 0 if a==b, 1 if a>b, -1 if a<b, and INT_MIN if one of the * values is of the form 0/0 */ -static inline int av_cmp_q(AVRational a, AVRational b){ +static inline int av_cmp_q(AVRational a, AVRational b) +{ const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den; - if(tmp) return ((tmp ^ a.den ^ b.den)>>63)|1; - else if(b.den && a.den) return 0; - else if(a.num && b.num) return (a.num>>31) - (b.num>>31); - else return INT_MIN; + if(tmp) { + return ((tmp ^ a.den ^ b.den)>>63)|1; + } + else if(b.den && a.den) { + return 0; + } + else if(a.num && b.num) { + return (a.num>>31) - (b.num>>31); + } + else { + return INT_MIN; + } } /** @@ -66,7 +75,8 @@ static inline int av_cmp_q(AVRational a, AVRational b){ * @param a rational to convert * @return (double) a */ -static inline double av_q2d(AVRational a){ +static inline double av_q2d(AVRational a) +{ return a.num / (double) a.den; } diff --git a/thirdparties/iphone/include/libavutil/timestamp.h b/thirdparties/iphone/include/libavutil/timestamp.h index c7348d8..6b46998 100755 --- a/thirdparties/iphone/include/libavutil/timestamp.h +++ b/thirdparties/iphone/include/libavutil/timestamp.h @@ -38,8 +38,12 @@ */ static inline char *av_ts_make_string(char *buf, int64_t ts) { - if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS"); - else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%"PRId64"", ts); + if (ts == AV_NOPTS_VALUE) { + snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS"); + } + else { + snprintf(buf, AV_TS_MAX_STRING_SIZE, "%"PRId64"", ts); + } return buf; } @@ -60,8 +64,12 @@ static inline char *av_ts_make_string(char *buf, int64_t ts) */ static inline char *av_ts_make_time_string(char *buf, int64_t ts, AVRational *tb) { - if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS"); - else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%.6g", av_q2d(*tb) * ts); + if (ts == AV_NOPTS_VALUE) { + snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS"); + } + else { + snprintf(buf, AV_TS_MAX_STRING_SIZE, "%.6g", av_q2d(*tb) * ts); + } return buf; } diff --git a/thirdparties/iphone/include/libswresample/swresample.h b/thirdparties/iphone/include/libswresample/swresample.h index ac87207..cf73401 100755 --- a/thirdparties/iphone/include/libswresample/swresample.h +++ b/thirdparties/iphone/include/libswresample/swresample.h @@ -137,7 +137,7 @@ void swr_free(struct SwrContext **s); * @return number of samples output per channel, negative value on error */ int swr_convert(struct SwrContext *s, uint8_t **out, int out_count, - const uint8_t **in , int in_count); + const uint8_t **in , int in_count); /** * Convert the next timestamp from input to output diff --git a/thirdparties/iphone/include/libyuv/libyuv/compare.h b/thirdparties/iphone/include/libyuv/libyuv/compare.h index 5dfac7c..8463a4c 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/compare.h +++ b/thirdparties/iphone/include/libyuv/libyuv/compare.h @@ -14,7 +14,8 @@ #include "libyuv/basic_types.h" #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif diff --git a/thirdparties/iphone/include/libyuv/libyuv/convert.h b/thirdparties/iphone/include/libyuv/libyuv/convert.h index 1bd45c8..e447d64 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/convert.h +++ b/thirdparties/iphone/include/libyuv/libyuv/convert.h @@ -18,7 +18,8 @@ #include "libyuv/rotate.h" #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif diff --git a/thirdparties/iphone/include/libyuv/libyuv/convert_argb.h b/thirdparties/iphone/include/libyuv/libyuv/convert_argb.h index a18014c..eaa14bc 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/convert_argb.h +++ b/thirdparties/iphone/include/libyuv/libyuv/convert_argb.h @@ -24,7 +24,8 @@ // TODO(fbarchard): Some of these functions lack parameter setting. #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif diff --git a/thirdparties/iphone/include/libyuv/libyuv/convert_from.h b/thirdparties/iphone/include/libyuv/libyuv/convert_from.h index b1cf57f..a9c9cdb 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/convert_from.h +++ b/thirdparties/iphone/include/libyuv/libyuv/convert_from.h @@ -15,7 +15,8 @@ #include "libyuv/rotate.h" #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif diff --git a/thirdparties/iphone/include/libyuv/libyuv/convert_from_argb.h b/thirdparties/iphone/include/libyuv/libyuv/convert_from_argb.h index 90f43af..a08bb1d 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/convert_from_argb.h +++ b/thirdparties/iphone/include/libyuv/libyuv/convert_from_argb.h @@ -14,7 +14,8 @@ #include "libyuv/basic_types.h" #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif diff --git a/thirdparties/iphone/include/libyuv/libyuv/cpu_id.h b/thirdparties/iphone/include/libyuv/libyuv/cpu_id.h index dc858a8..d36213c 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/cpu_id.h +++ b/thirdparties/iphone/include/libyuv/libyuv/cpu_id.h @@ -14,7 +14,8 @@ #include "libyuv/basic_types.h" #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif @@ -55,9 +56,10 @@ int ArmCpuCaps(const char* cpuinfo_name); // Detect CPU has SSE2 etc. // Test_flag parameter should be one of kCpuHas constants above. // returns non-zero if instruction set is detected -static __inline int TestCpuFlag(int test_flag) { - LIBYUV_API extern int cpu_info_; - return (cpu_info_ == kCpuInit ? InitCpuFlags() : cpu_info_) & test_flag; +static __inline int TestCpuFlag(int test_flag) +{ + LIBYUV_API extern int cpu_info_; + return (cpu_info_ == kCpuInit ? InitCpuFlags() : cpu_info_) & test_flag; } // For testing, allow CPU flags to be disabled. diff --git a/thirdparties/iphone/include/libyuv/libyuv/format_conversion.h b/thirdparties/iphone/include/libyuv/libyuv/format_conversion.h index b18bf05..8cf6e4b 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/format_conversion.h +++ b/thirdparties/iphone/include/libyuv/libyuv/format_conversion.h @@ -14,7 +14,8 @@ #include "libyuv/basic_types.h" #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif diff --git a/thirdparties/iphone/include/libyuv/libyuv/mjpeg_decoder.h b/thirdparties/iphone/include/libyuv/libyuv/mjpeg_decoder.h index 8423121..bb51204 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/mjpeg_decoder.h +++ b/thirdparties/iphone/include/libyuv/libyuv/mjpeg_decoder.h @@ -20,7 +20,8 @@ struct jpeg_common_struct; struct jpeg_decompress_struct; struct jpeg_source_mgr; -namespace libyuv { +namespace libyuv +{ #ifdef __cplusplus extern "C" { @@ -35,23 +36,23 @@ LIBYUV_BOOL ValidateJpeg(const uint8* sample, size_t sample_size); static const uint32 kUnknownDataSize = 0xFFFFFFFF; enum JpegSubsamplingType { - kJpegYuv420, - kJpegYuv422, - kJpegYuv411, - kJpegYuv444, - kJpegYuv400, - kJpegUnknown + kJpegYuv420, + kJpegYuv422, + kJpegYuv411, + kJpegYuv444, + kJpegYuv400, + kJpegUnknown }; struct Buffer { - const uint8* data; - int len; + const uint8* data; + int len; }; struct BufferVector { - Buffer* buffers; - int len; - int pos; + Buffer* buffers; + int len; + int pos; }; struct SetJmpErrorMgr; @@ -63,127 +64,128 @@ struct SetJmpErrorMgr; // MJPEG frames. // // See http://tools.ietf.org/html/rfc2435 -class LIBYUV_API MJpegDecoder { - public: - typedef void (*CallbackFunction)(void* opaque, - const uint8* const* data, - const int* strides, - int rows); +class LIBYUV_API MJpegDecoder +{ +public: + typedef void (*CallbackFunction)(void* opaque, + const uint8* const* data, + const int* strides, + int rows); - static const int kColorSpaceUnknown; - static const int kColorSpaceGrayscale; - static const int kColorSpaceRgb; - static const int kColorSpaceYCbCr; - static const int kColorSpaceCMYK; - static const int kColorSpaceYCCK; + static const int kColorSpaceUnknown; + static const int kColorSpaceGrayscale; + static const int kColorSpaceRgb; + static const int kColorSpaceYCbCr; + static const int kColorSpaceCMYK; + static const int kColorSpaceYCCK; - MJpegDecoder(); - ~MJpegDecoder(); + MJpegDecoder(); + ~MJpegDecoder(); - // Loads a new frame, reads its headers, and determines the uncompressed - // image format. - // Returns LIBYUV_TRUE if image looks valid and format is supported. - // If return value is LIBYUV_TRUE, then the values for all the following - // getters are populated. - // src_len is the size of the compressed mjpeg frame in bytes. - LIBYUV_BOOL LoadFrame(const uint8* src, size_t src_len); - - // Returns width of the last loaded frame in pixels. - int GetWidth(); - - // Returns height of the last loaded frame in pixels. - int GetHeight(); - - // Returns format of the last loaded frame. The return value is one of the - // kColorSpace* constants. - int GetColorSpace(); - - // Number of color components in the color space. - int GetNumComponents(); - - // Sample factors of the n-th component. - int GetHorizSampFactor(int component); - - int GetVertSampFactor(int component); - - int GetHorizSubSampFactor(int component); - - int GetVertSubSampFactor(int component); - - // Public for testability. - int GetImageScanlinesPerImcuRow(); - - // Public for testability. - int GetComponentScanlinesPerImcuRow(int component); - - // Width of a component in bytes. - int GetComponentWidth(int component); - - // Height of a component. - int GetComponentHeight(int component); - - // Width of a component in bytes with padding for DCTSIZE. Public for testing. - int GetComponentStride(int component); - - // Size of a component in bytes. - int GetComponentSize(int component); - - // Call this after LoadFrame() if you decide you don't want to decode it - // after all. - LIBYUV_BOOL UnloadFrame(); - - // Decodes the entire image into a one-buffer-per-color-component format. - // dst_width must match exactly. dst_height must be <= to image height; if - // less, the image is cropped. "planes" must have size equal to at least - // GetNumComponents() and they must point to non-overlapping buffers of size - // at least GetComponentSize(i). The pointers in planes are incremented - // to point to after the end of the written data. - // TODO(fbarchard): Add dst_x, dst_y to allow specific rect to be decoded. - LIBYUV_BOOL DecodeToBuffers(uint8** planes, int dst_width, int dst_height); - - // Decodes the entire image and passes the data via repeated calls to a - // callback function. Each call will get the data for a whole number of - // image scanlines. - // TODO(fbarchard): Add dst_x, dst_y to allow specific rect to be decoded. - LIBYUV_BOOL DecodeToCallback(CallbackFunction fn, void* opaque, - int dst_width, int dst_height); - - // The helper function which recognizes the jpeg sub-sampling type. - static JpegSubsamplingType JpegSubsamplingTypeHelper( - int* subsample_x, int* subsample_y, int number_of_components); - - private: - void AllocOutputBuffers(int num_outbufs); - void DestroyOutputBuffers(); - - LIBYUV_BOOL StartDecode(); - LIBYUV_BOOL FinishDecode(); - - void SetScanlinePointers(uint8** data); - LIBYUV_BOOL DecodeImcuRow(); - - int GetComponentScanlinePadding(int component); - - // A buffer holding the input data for a frame. - Buffer buf_; - BufferVector buf_vec_; + // Loads a new frame, reads its headers, and determines the uncompressed + // image format. + // Returns LIBYUV_TRUE if image looks valid and format is supported. + // If return value is LIBYUV_TRUE, then the values for all the following + // getters are populated. + // src_len is the size of the compressed mjpeg frame in bytes. + LIBYUV_BOOL LoadFrame(const uint8* src, size_t src_len); + + // Returns width of the last loaded frame in pixels. + int GetWidth(); + + // Returns height of the last loaded frame in pixels. + int GetHeight(); + + // Returns format of the last loaded frame. The return value is one of the + // kColorSpace* constants. + int GetColorSpace(); + + // Number of color components in the color space. + int GetNumComponents(); + + // Sample factors of the n-th component. + int GetHorizSampFactor(int component); + + int GetVertSampFactor(int component); + + int GetHorizSubSampFactor(int component); + + int GetVertSubSampFactor(int component); + + // Public for testability. + int GetImageScanlinesPerImcuRow(); + + // Public for testability. + int GetComponentScanlinesPerImcuRow(int component); + + // Width of a component in bytes. + int GetComponentWidth(int component); + + // Height of a component. + int GetComponentHeight(int component); + + // Width of a component in bytes with padding for DCTSIZE. Public for testing. + int GetComponentStride(int component); + + // Size of a component in bytes. + int GetComponentSize(int component); + + // Call this after LoadFrame() if you decide you don't want to decode it + // after all. + LIBYUV_BOOL UnloadFrame(); + + // Decodes the entire image into a one-buffer-per-color-component format. + // dst_width must match exactly. dst_height must be <= to image height; if + // less, the image is cropped. "planes" must have size equal to at least + // GetNumComponents() and they must point to non-overlapping buffers of size + // at least GetComponentSize(i). The pointers in planes are incremented + // to point to after the end of the written data. + // TODO(fbarchard): Add dst_x, dst_y to allow specific rect to be decoded. + LIBYUV_BOOL DecodeToBuffers(uint8** planes, int dst_width, int dst_height); + + // Decodes the entire image and passes the data via repeated calls to a + // callback function. Each call will get the data for a whole number of + // image scanlines. + // TODO(fbarchard): Add dst_x, dst_y to allow specific rect to be decoded. + LIBYUV_BOOL DecodeToCallback(CallbackFunction fn, void* opaque, + int dst_width, int dst_height); + + // The helper function which recognizes the jpeg sub-sampling type. + static JpegSubsamplingType JpegSubsamplingTypeHelper( + int* subsample_x, int* subsample_y, int number_of_components); + +private: + void AllocOutputBuffers(int num_outbufs); + void DestroyOutputBuffers(); + + LIBYUV_BOOL StartDecode(); + LIBYUV_BOOL FinishDecode(); + + void SetScanlinePointers(uint8** data); + LIBYUV_BOOL DecodeImcuRow(); + + int GetComponentScanlinePadding(int component); + + // A buffer holding the input data for a frame. + Buffer buf_; + BufferVector buf_vec_; - jpeg_decompress_struct* decompress_struct_; - jpeg_source_mgr* source_mgr_; - SetJmpErrorMgr* error_mgr_; + jpeg_decompress_struct* decompress_struct_; + jpeg_source_mgr* source_mgr_; + SetJmpErrorMgr* error_mgr_; - // LIBYUV_TRUE iff at least one component has scanline padding. (i.e., - // GetComponentScanlinePadding() != 0.) - LIBYUV_BOOL has_scanline_padding_; + // LIBYUV_TRUE iff at least one component has scanline padding. (i.e., + // GetComponentScanlinePadding() != 0.) + LIBYUV_BOOL has_scanline_padding_; - // Temporaries used to point to scanline outputs. - int num_outbufs_; // Outermost size of all arrays below. - uint8*** scanlines_; - int* scanlines_sizes_; - // Temporary buffer used for decoding when we can't decode directly to the - // output buffers. Large enough for just one iMCU row. - uint8** databuf_; - int* databuf_strides_; + // Temporaries used to point to scanline outputs. + int num_outbufs_; // Outermost size of all arrays below. + uint8*** scanlines_; + int* scanlines_sizes_; + // Temporary buffer used for decoding when we can't decode directly to the + // output buffers. Large enough for just one iMCU row. + uint8** databuf_; + int* databuf_strides_; }; } // namespace libyuv diff --git a/thirdparties/iphone/include/libyuv/libyuv/planar_functions.h b/thirdparties/iphone/include/libyuv/libyuv/planar_functions.h index d10a169..da75f3c 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/planar_functions.h +++ b/thirdparties/iphone/include/libyuv/libyuv/planar_functions.h @@ -18,7 +18,8 @@ #include "libyuv/convert_argb.h" #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif diff --git a/thirdparties/iphone/include/libyuv/libyuv/rotate.h b/thirdparties/iphone/include/libyuv/libyuv/rotate.h index 8af60b8..58bc1c2 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/rotate.h +++ b/thirdparties/iphone/include/libyuv/libyuv/rotate.h @@ -14,22 +14,24 @@ #include "libyuv/basic_types.h" #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif // Supported rotation. typedef enum RotationMode { - kRotate0 = 0, // No rotation. - kRotate90 = 90, // Rotate 90 degrees clockwise. - kRotate180 = 180, // Rotate 180 degrees. - kRotate270 = 270, // Rotate 270 degrees clockwise. - - // Deprecated. - kRotateNone = 0, - kRotateClockwise = 90, - kRotateCounterClockwise = 270, -} RotationModeEnum; + kRotate0 = 0, // No rotation. + kRotate90 = 90, // Rotate 90 degrees clockwise. + kRotate180 = 180, // Rotate 180 degrees. + kRotate270 = 270, // Rotate 270 degrees clockwise. + + // Deprecated. + kRotateNone = 0, + kRotateClockwise = 90, + kRotateCounterClockwise = 270, +} +RotationModeEnum; // Rotate I420 frame. LIBYUV_API diff --git a/thirdparties/iphone/include/libyuv/libyuv/rotate_argb.h b/thirdparties/iphone/include/libyuv/libyuv/rotate_argb.h index 660ff55..349707c 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/rotate_argb.h +++ b/thirdparties/iphone/include/libyuv/libyuv/rotate_argb.h @@ -15,7 +15,8 @@ #include "libyuv/rotate.h" // For RotationMode. #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif diff --git a/thirdparties/iphone/include/libyuv/libyuv/row.h b/thirdparties/iphone/include/libyuv/libyuv/row.h index d81deac..97a08ff 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/row.h +++ b/thirdparties/iphone/include/libyuv/libyuv/row.h @@ -16,7 +16,8 @@ #include "libyuv/basic_types.h" #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif @@ -227,7 +228,7 @@ extern "C" { // TODO(fbarchard): Port AVX2 to inline. #if !defined(LIBYUV_DISABLE_X86) && defined(HAVE_YASM) (defined(_M_IX86) || defined(_M_X64) || \ - defined(__x86_64__) || defined(__i386__)) + defined(__x86_64__) || defined(__i386__)) #define HAS_MERGEUVROW_AVX2 #define HAS_MERGEUVROW_MMX #define HAS_SPLITUVROW_AVX2 @@ -448,48 +449,48 @@ extern "C" { #if defined(_MSC_VER) && !defined(__CLR_VER) #define SIMD_ALIGNED(var) __declspec(align(16)) var -typedef __declspec(align(16)) int16 vec16[8]; -typedef __declspec(align(16)) int32 vec32[4]; -typedef __declspec(align(16)) int8 vec8[16]; -typedef __declspec(align(16)) uint16 uvec16[8]; -typedef __declspec(align(16)) uint32 uvec32[4]; -typedef __declspec(align(16)) uint8 uvec8[16]; -typedef __declspec(align(32)) int16 lvec16[16]; -typedef __declspec(align(32)) int32 lvec32[8]; -typedef __declspec(align(32)) int8 lvec8[32]; -typedef __declspec(align(32)) uint16 ulvec16[16]; -typedef __declspec(align(32)) uint32 ulvec32[8]; -typedef __declspec(align(32)) uint8 ulvec8[32]; + typedef __declspec(align(16)) int16 vec16[8]; + typedef __declspec(align(16)) int32 vec32[4]; + typedef __declspec(align(16)) int8 vec8[16]; + typedef __declspec(align(16)) uint16 uvec16[8]; + typedef __declspec(align(16)) uint32 uvec32[4]; + typedef __declspec(align(16)) uint8 uvec8[16]; + typedef __declspec(align(32)) int16 lvec16[16]; + typedef __declspec(align(32)) int32 lvec32[8]; + typedef __declspec(align(32)) int8 lvec8[32]; + typedef __declspec(align(32)) uint16 ulvec16[16]; + typedef __declspec(align(32)) uint32 ulvec32[8]; + typedef __declspec(align(32)) uint8 ulvec8[32]; #elif defined(__GNUC__) // Caveat GCC 4.2 to 4.7 have a known issue using vectors with const. #define SIMD_ALIGNED(var) var __attribute__((aligned(16))) -typedef int16 __attribute__((vector_size(16))) vec16; -typedef int32 __attribute__((vector_size(16))) vec32; -typedef int8 __attribute__((vector_size(16))) vec8; -typedef uint16 __attribute__((vector_size(16))) uvec16; -typedef uint32 __attribute__((vector_size(16))) uvec32; -typedef uint8 __attribute__((vector_size(16))) uvec8; -typedef int16 __attribute__((vector_size(32))) lvec16; -typedef int32 __attribute__((vector_size(32))) lvec32; -typedef int8 __attribute__((vector_size(32))) lvec8; -typedef uint16 __attribute__((vector_size(32))) ulvec16; -typedef uint32 __attribute__((vector_size(32))) ulvec32; -typedef uint8 __attribute__((vector_size(32))) ulvec8; + typedef int16 __attribute__((vector_size(16))) vec16; + typedef int32 __attribute__((vector_size(16))) vec32; + typedef int8 __attribute__((vector_size(16))) vec8; + typedef uint16 __attribute__((vector_size(16))) uvec16; + typedef uint32 __attribute__((vector_size(16))) uvec32; + typedef uint8 __attribute__((vector_size(16))) uvec8; + typedef int16 __attribute__((vector_size(32))) lvec16; + typedef int32 __attribute__((vector_size(32))) lvec32; + typedef int8 __attribute__((vector_size(32))) lvec8; + typedef uint16 __attribute__((vector_size(32))) ulvec16; + typedef uint32 __attribute__((vector_size(32))) ulvec32; + typedef uint8 __attribute__((vector_size(32))) ulvec8; #else #define SIMD_ALIGNED(var) var -typedef int16 vec16[8]; -typedef int32 vec32[4]; -typedef int8 vec8[16]; -typedef uint16 uvec16[8]; -typedef uint32 uvec32[4]; -typedef uint8 uvec8[16]; -typedef int16 lvec16[16]; -typedef int32 lvec32[8]; -typedef int8 lvec8[32]; -typedef uint16 ulvec16[16]; -typedef uint32 ulvec32[8]; -typedef uint8 ulvec8[32]; + typedef int16 vec16[8]; + typedef int32 vec32[4]; + typedef int8 vec8[16]; + typedef uint16 uvec16[8]; + typedef uint32 uvec32[4]; + typedef uint8 uvec8[16]; + typedef int16 lvec16[16]; + typedef int32 lvec32[8]; + typedef int8 lvec8[32]; + typedef uint16 ulvec16[16]; + typedef uint32 ulvec32[8]; + typedef uint8 ulvec8[32]; #endif #if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__) @@ -560,1180 +561,1180 @@ typedef uint8 ulvec8[32]; #endif #endif -void I444ToARGBRow_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToARGBRow_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I411ToARGBRow_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToBGRARow_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_bgra, - int width); -void I422ToABGRRow_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_abgr, - int width); -void I422ToRGBARow_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_rgba, - int width); -void I422ToRGB24Row_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_rgb24, - int width); -void I422ToRAWRow_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_raw, - int width); -void I422ToRGB565Row_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_rgb565, - int width); -void I422ToARGB1555Row_NEON(const uint8* src_y, + void I444ToARGBRow_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToARGBRow_NEON(const uint8* src_y, const uint8* src_u, const uint8* src_v, - uint8* dst_argb1555, + uint8* dst_argb, int width); -void I422ToARGB4444Row_NEON(const uint8* src_y, + void I411ToARGBRow_NEON(const uint8* src_y, const uint8* src_u, const uint8* src_v, - uint8* dst_argb4444, + uint8* dst_argb, + int width); + void I422ToBGRARow_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_bgra, + int width); + void I422ToABGRRow_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_abgr, + int width); + void I422ToRGBARow_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_rgba, + int width); + void I422ToRGB24Row_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_rgb24, + int width); + void I422ToRAWRow_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_raw, + int width); + void I422ToRGB565Row_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_rgb565, + int width); + void I422ToARGB1555Row_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb1555, + int width); + void I422ToARGB4444Row_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb4444, + int width); + void NV12ToARGBRow_NEON(const uint8* src_y, + const uint8* src_uv, + uint8* dst_argb, + int width); + void NV21ToARGBRow_NEON(const uint8* src_y, + const uint8* src_vu, + uint8* dst_argb, + int width); + void NV12ToRGB565Row_NEON(const uint8* src_y, + const uint8* src_uv, + uint8* dst_rgb565, + int width); + void NV21ToRGB565Row_NEON(const uint8* src_y, + const uint8* src_vu, + uint8* dst_rgb565, + int width); + void YUY2ToARGBRow_NEON(const uint8* src_yuy2, + uint8* dst_argb, + int width); + void UYVYToARGBRow_NEON(const uint8* src_uyvy, + uint8* dst_argb, int width); -void NV12ToARGBRow_NEON(const uint8* src_y, - const uint8* src_uv, - uint8* dst_argb, - int width); -void NV21ToARGBRow_NEON(const uint8* src_y, - const uint8* src_vu, - uint8* dst_argb, - int width); -void NV12ToRGB565Row_NEON(const uint8* src_y, - const uint8* src_uv, - uint8* dst_rgb565, - int width); -void NV21ToRGB565Row_NEON(const uint8* src_y, - const uint8* src_vu, - uint8* dst_rgb565, - int width); -void YUY2ToARGBRow_NEON(const uint8* src_yuy2, - uint8* dst_argb, - int width); -void UYVYToARGBRow_NEON(const uint8* src_uyvy, - uint8* dst_argb, - int width); -void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); -void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); -void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); -void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); -void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); -void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); -void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix); -void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix); -void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int pix); -void RGB24ToYRow_SSSE3(const uint8* src_rgb24, uint8* dst_y, int pix); -void RAWToYRow_SSSE3(const uint8* src_raw, uint8* dst_y, int pix); -void ARGBToYRow_NEON(const uint8* src_argb, uint8* dst_y, int pix); -void ARGBToYJRow_NEON(const uint8* src_argb, uint8* dst_y, int pix); -void ARGBToUV444Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, - int pix); -void ARGBToUV422Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, - int pix); -void ARGBToUV411Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, - int pix); -void ARGBToUVRow_NEON(const uint8* src_argb, int src_stride_argb, - uint8* dst_u, uint8* dst_v, int pix); -void ARGBToUVJRow_NEON(const uint8* src_argb, int src_stride_argb, - uint8* dst_u, uint8* dst_v, int pix); -void BGRAToUVRow_NEON(const uint8* src_bgra, int src_stride_bgra, - uint8* dst_u, uint8* dst_v, int pix); -void ABGRToUVRow_NEON(const uint8* src_abgr, int src_stride_abgr, - uint8* dst_u, uint8* dst_v, int pix); -void RGBAToUVRow_NEON(const uint8* src_rgba, int src_stride_rgba, - uint8* dst_u, uint8* dst_v, int pix); -void RGB24ToUVRow_NEON(const uint8* src_rgb24, int src_stride_rgb24, - uint8* dst_u, uint8* dst_v, int pix); -void RAWToUVRow_NEON(const uint8* src_raw, int src_stride_raw, - uint8* dst_u, uint8* dst_v, int pix); -void RGB565ToUVRow_NEON(const uint8* src_rgb565, int src_stride_rgb565, - uint8* dst_u, uint8* dst_v, int pix); -void ARGB1555ToUVRow_NEON(const uint8* src_argb1555, int src_stride_argb1555, - uint8* dst_u, uint8* dst_v, int pix); -void ARGB4444ToUVRow_NEON(const uint8* src_argb4444, int src_stride_argb4444, - uint8* dst_u, uint8* dst_v, int pix); -void BGRAToYRow_NEON(const uint8* src_bgra, uint8* dst_y, int pix); -void ABGRToYRow_NEON(const uint8* src_abgr, uint8* dst_y, int pix); -void RGBAToYRow_NEON(const uint8* src_rgba, uint8* dst_y, int pix); -void RGB24ToYRow_NEON(const uint8* src_rgb24, uint8* dst_y, int pix); -void RAWToYRow_NEON(const uint8* src_raw, uint8* dst_y, int pix); -void RGB565ToYRow_NEON(const uint8* src_rgb565, uint8* dst_y, int pix); -void ARGB1555ToYRow_NEON(const uint8* src_argb1555, uint8* dst_y, int pix); -void ARGB4444ToYRow_NEON(const uint8* src_argb4444, uint8* dst_y, int pix); -void ARGBToYRow_C(const uint8* src_argb, uint8* dst_y, int pix); -void ARGBToYJRow_C(const uint8* src_argb, uint8* dst_y, int pix); -void BGRAToYRow_C(const uint8* src_bgra, uint8* dst_y, int pix); -void ABGRToYRow_C(const uint8* src_abgr, uint8* dst_y, int pix); -void RGBAToYRow_C(const uint8* src_rgba, uint8* dst_y, int pix); -void RGB24ToYRow_C(const uint8* src_rgb24, uint8* dst_y, int pix); -void RAWToYRow_C(const uint8* src_raw, uint8* dst_y, int pix); -void RGB565ToYRow_C(const uint8* src_rgb565, uint8* dst_y, int pix); -void ARGB1555ToYRow_C(const uint8* src_argb1555, uint8* dst_y, int pix); -void ARGB4444ToYRow_C(const uint8* src_argb4444, uint8* dst_y, int pix); -void ARGBToYRow_Any_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); -void ARGBToYJRow_Any_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); -void BGRAToYRow_Any_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix); -void ABGRToYRow_Any_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix); -void RGBAToYRow_Any_SSSE3(const uint8* src_rgba, uint8* dst_y, int pix); -void RGB24ToYRow_Any_SSSE3(const uint8* src_rgb24, uint8* dst_y, int pix); -void RAWToYRow_Any_SSSE3(const uint8* src_raw, uint8* dst_y, int pix); -void ARGBToYRow_Any_NEON(const uint8* src_argb, uint8* dst_y, int pix); -void ARGBToYJRow_Any_NEON(const uint8* src_argb, uint8* dst_y, int pix); -void BGRAToYRow_Any_NEON(const uint8* src_bgra, uint8* dst_y, int pix); -void ABGRToYRow_Any_NEON(const uint8* src_abgr, uint8* dst_y, int pix); -void RGBAToYRow_Any_NEON(const uint8* src_rgba, uint8* dst_y, int pix); -void RGB24ToYRow_Any_NEON(const uint8* src_rgb24, uint8* dst_y, int pix); -void RAWToYRow_Any_NEON(const uint8* src_raw, uint8* dst_y, int pix); -void RGB565ToYRow_Any_NEON(const uint8* src_rgb565, uint8* dst_y, int pix); -void ARGB1555ToYRow_Any_NEON(const uint8* src_argb1555, uint8* dst_y, int pix); -void ARGB4444ToYRow_Any_NEON(const uint8* src_argb4444, uint8* dst_y, int pix); - -void ARGBToUVRow_AVX2(const uint8* src_argb, int src_stride_argb, - uint8* dst_u, uint8* dst_v, int width); -void ARGBToUVRow_Any_AVX2(const uint8* src_argb, int src_stride_argb, - uint8* dst_u, uint8* dst_v, int width); -void ARGBToUVRow_SSSE3(const uint8* src_argb, int src_stride_argb, - uint8* dst_u, uint8* dst_v, int width); -void ARGBToUVJRow_SSSE3(const uint8* src_argb, int src_stride_argb, - uint8* dst_u, uint8* dst_v, int width); -void BGRAToUVRow_SSSE3(const uint8* src_bgra, int src_stride_bgra, - uint8* dst_u, uint8* dst_v, int width); -void ABGRToUVRow_SSSE3(const uint8* src_abgr, int src_stride_abgr, - uint8* dst_u, uint8* dst_v, int width); -void RGBAToUVRow_SSSE3(const uint8* src_rgba, int src_stride_rgba, - uint8* dst_u, uint8* dst_v, int width); -void ARGBToUVRow_Any_SSSE3(const uint8* src_argb, int src_stride_argb, - uint8* dst_u, uint8* dst_v, int width); -void ARGBToUVJRow_Any_SSSE3(const uint8* src_argb, int src_stride_argb, - uint8* dst_u, uint8* dst_v, int width); -void BGRAToUVRow_Any_SSSE3(const uint8* src_bgra, int src_stride_bgra, - uint8* dst_u, uint8* dst_v, int width); -void ABGRToUVRow_Any_SSSE3(const uint8* src_abgr, int src_stride_abgr, - uint8* dst_u, uint8* dst_v, int width); -void RGBAToUVRow_Any_SSSE3(const uint8* src_rgba, int src_stride_rgba, - uint8* dst_u, uint8* dst_v, int width); -void ARGBToUV444Row_Any_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, + void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); + void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); + void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); + void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); + void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); + void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); + void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix); + void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix); + void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int pix); + void RGB24ToYRow_SSSE3(const uint8* src_rgb24, uint8* dst_y, int pix); + void RAWToYRow_SSSE3(const uint8* src_raw, uint8* dst_y, int pix); + void ARGBToYRow_NEON(const uint8* src_argb, uint8* dst_y, int pix); + void ARGBToYJRow_NEON(const uint8* src_argb, uint8* dst_y, int pix); + void ARGBToUV444Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, int pix); -void ARGBToUV422Row_Any_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, + void ARGBToUV422Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, int pix); -void ARGBToUV411Row_Any_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, + void ARGBToUV411Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, int pix); -void ARGBToUVRow_Any_NEON(const uint8* src_argb, int src_stride_argb, + void ARGBToUVRow_NEON(const uint8* src_argb, int src_stride_argb, uint8* dst_u, uint8* dst_v, int pix); -void ARGBToUVJRow_Any_NEON(const uint8* src_argb, int src_stride_argb, + void ARGBToUVJRow_NEON(const uint8* src_argb, int src_stride_argb, uint8* dst_u, uint8* dst_v, int pix); -void BGRAToUVRow_Any_NEON(const uint8* src_bgra, int src_stride_bgra, + void BGRAToUVRow_NEON(const uint8* src_bgra, int src_stride_bgra, uint8* dst_u, uint8* dst_v, int pix); -void ABGRToUVRow_Any_NEON(const uint8* src_abgr, int src_stride_abgr, + void ABGRToUVRow_NEON(const uint8* src_abgr, int src_stride_abgr, uint8* dst_u, uint8* dst_v, int pix); -void RGBAToUVRow_Any_NEON(const uint8* src_rgba, int src_stride_rgba, + void RGBAToUVRow_NEON(const uint8* src_rgba, int src_stride_rgba, uint8* dst_u, uint8* dst_v, int pix); -void RGB24ToUVRow_Any_NEON(const uint8* src_rgb24, int src_stride_rgb24, + void RGB24ToUVRow_NEON(const uint8* src_rgb24, int src_stride_rgb24, uint8* dst_u, uint8* dst_v, int pix); -void RAWToUVRow_Any_NEON(const uint8* src_raw, int src_stride_raw, + void RAWToUVRow_NEON(const uint8* src_raw, int src_stride_raw, uint8* dst_u, uint8* dst_v, int pix); -void RGB565ToUVRow_Any_NEON(const uint8* src_rgb565, int src_stride_rgb565, + void RGB565ToUVRow_NEON(const uint8* src_rgb565, int src_stride_rgb565, uint8* dst_u, uint8* dst_v, int pix); -void ARGB1555ToUVRow_Any_NEON(const uint8* src_argb1555, - int src_stride_argb1555, + void ARGB1555ToUVRow_NEON(const uint8* src_argb1555, int src_stride_argb1555, + uint8* dst_u, uint8* dst_v, int pix); + void ARGB4444ToUVRow_NEON(const uint8* src_argb4444, int src_stride_argb4444, + uint8* dst_u, uint8* dst_v, int pix); + void BGRAToYRow_NEON(const uint8* src_bgra, uint8* dst_y, int pix); + void ABGRToYRow_NEON(const uint8* src_abgr, uint8* dst_y, int pix); + void RGBAToYRow_NEON(const uint8* src_rgba, uint8* dst_y, int pix); + void RGB24ToYRow_NEON(const uint8* src_rgb24, uint8* dst_y, int pix); + void RAWToYRow_NEON(const uint8* src_raw, uint8* dst_y, int pix); + void RGB565ToYRow_NEON(const uint8* src_rgb565, uint8* dst_y, int pix); + void ARGB1555ToYRow_NEON(const uint8* src_argb1555, uint8* dst_y, int pix); + void ARGB4444ToYRow_NEON(const uint8* src_argb4444, uint8* dst_y, int pix); + void ARGBToYRow_C(const uint8* src_argb, uint8* dst_y, int pix); + void ARGBToYJRow_C(const uint8* src_argb, uint8* dst_y, int pix); + void BGRAToYRow_C(const uint8* src_bgra, uint8* dst_y, int pix); + void ABGRToYRow_C(const uint8* src_abgr, uint8* dst_y, int pix); + void RGBAToYRow_C(const uint8* src_rgba, uint8* dst_y, int pix); + void RGB24ToYRow_C(const uint8* src_rgb24, uint8* dst_y, int pix); + void RAWToYRow_C(const uint8* src_raw, uint8* dst_y, int pix); + void RGB565ToYRow_C(const uint8* src_rgb565, uint8* dst_y, int pix); + void ARGB1555ToYRow_C(const uint8* src_argb1555, uint8* dst_y, int pix); + void ARGB4444ToYRow_C(const uint8* src_argb4444, uint8* dst_y, int pix); + void ARGBToYRow_Any_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); + void ARGBToYJRow_Any_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); + void BGRAToYRow_Any_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix); + void ABGRToYRow_Any_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix); + void RGBAToYRow_Any_SSSE3(const uint8* src_rgba, uint8* dst_y, int pix); + void RGB24ToYRow_Any_SSSE3(const uint8* src_rgb24, uint8* dst_y, int pix); + void RAWToYRow_Any_SSSE3(const uint8* src_raw, uint8* dst_y, int pix); + void ARGBToYRow_Any_NEON(const uint8* src_argb, uint8* dst_y, int pix); + void ARGBToYJRow_Any_NEON(const uint8* src_argb, uint8* dst_y, int pix); + void BGRAToYRow_Any_NEON(const uint8* src_bgra, uint8* dst_y, int pix); + void ABGRToYRow_Any_NEON(const uint8* src_abgr, uint8* dst_y, int pix); + void RGBAToYRow_Any_NEON(const uint8* src_rgba, uint8* dst_y, int pix); + void RGB24ToYRow_Any_NEON(const uint8* src_rgb24, uint8* dst_y, int pix); + void RAWToYRow_Any_NEON(const uint8* src_raw, uint8* dst_y, int pix); + void RGB565ToYRow_Any_NEON(const uint8* src_rgb565, uint8* dst_y, int pix); + void ARGB1555ToYRow_Any_NEON(const uint8* src_argb1555, uint8* dst_y, int pix); + void ARGB4444ToYRow_Any_NEON(const uint8* src_argb4444, uint8* dst_y, int pix); + + void ARGBToUVRow_AVX2(const uint8* src_argb, int src_stride_argb, + uint8* dst_u, uint8* dst_v, int width); + void ARGBToUVRow_Any_AVX2(const uint8* src_argb, int src_stride_argb, + uint8* dst_u, uint8* dst_v, int width); + void ARGBToUVRow_SSSE3(const uint8* src_argb, int src_stride_argb, + uint8* dst_u, uint8* dst_v, int width); + void ARGBToUVJRow_SSSE3(const uint8* src_argb, int src_stride_argb, + uint8* dst_u, uint8* dst_v, int width); + void BGRAToUVRow_SSSE3(const uint8* src_bgra, int src_stride_bgra, + uint8* dst_u, uint8* dst_v, int width); + void ABGRToUVRow_SSSE3(const uint8* src_abgr, int src_stride_abgr, + uint8* dst_u, uint8* dst_v, int width); + void RGBAToUVRow_SSSE3(const uint8* src_rgba, int src_stride_rgba, + uint8* dst_u, uint8* dst_v, int width); + void ARGBToUVRow_Any_SSSE3(const uint8* src_argb, int src_stride_argb, + uint8* dst_u, uint8* dst_v, int width); + void ARGBToUVJRow_Any_SSSE3(const uint8* src_argb, int src_stride_argb, + uint8* dst_u, uint8* dst_v, int width); + void BGRAToUVRow_Any_SSSE3(const uint8* src_bgra, int src_stride_bgra, + uint8* dst_u, uint8* dst_v, int width); + void ABGRToUVRow_Any_SSSE3(const uint8* src_abgr, int src_stride_abgr, + uint8* dst_u, uint8* dst_v, int width); + void RGBAToUVRow_Any_SSSE3(const uint8* src_rgba, int src_stride_rgba, + uint8* dst_u, uint8* dst_v, int width); + void ARGBToUV444Row_Any_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, + int pix); + void ARGBToUV422Row_Any_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, + int pix); + void ARGBToUV411Row_Any_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, + int pix); + void ARGBToUVRow_Any_NEON(const uint8* src_argb, int src_stride_argb, uint8* dst_u, uint8* dst_v, int pix); -void ARGB4444ToUVRow_Any_NEON(const uint8* src_argb4444, - int src_stride_argb4444, + void ARGBToUVJRow_Any_NEON(const uint8* src_argb, int src_stride_argb, + uint8* dst_u, uint8* dst_v, int pix); + void BGRAToUVRow_Any_NEON(const uint8* src_bgra, int src_stride_bgra, uint8* dst_u, uint8* dst_v, int pix); -void ARGBToUVRow_C(const uint8* src_argb, int src_stride_argb, - uint8* dst_u, uint8* dst_v, int width); -void ARGBToUVJRow_C(const uint8* src_argb, int src_stride_argb, - uint8* dst_u, uint8* dst_v, int width); -void BGRAToUVRow_C(const uint8* src_bgra, int src_stride_bgra, - uint8* dst_u, uint8* dst_v, int width); -void ABGRToUVRow_C(const uint8* src_abgr, int src_stride_abgr, - uint8* dst_u, uint8* dst_v, int width); -void RGBAToUVRow_C(const uint8* src_rgba, int src_stride_rgba, - uint8* dst_u, uint8* dst_v, int width); -void RGB24ToUVRow_C(const uint8* src_rgb24, int src_stride_rgb24, - uint8* dst_u, uint8* dst_v, int width); -void RAWToUVRow_C(const uint8* src_raw, int src_stride_raw, - uint8* dst_u, uint8* dst_v, int width); -void RGB565ToUVRow_C(const uint8* src_rgb565, int src_stride_rgb565, - uint8* dst_u, uint8* dst_v, int width); -void ARGB1555ToUVRow_C(const uint8* src_argb1555, int src_stride_argb1555, + void ABGRToUVRow_Any_NEON(const uint8* src_abgr, int src_stride_abgr, + uint8* dst_u, uint8* dst_v, int pix); + void RGBAToUVRow_Any_NEON(const uint8* src_rgba, int src_stride_rgba, + uint8* dst_u, uint8* dst_v, int pix); + void RGB24ToUVRow_Any_NEON(const uint8* src_rgb24, int src_stride_rgb24, + uint8* dst_u, uint8* dst_v, int pix); + void RAWToUVRow_Any_NEON(const uint8* src_raw, int src_stride_raw, + uint8* dst_u, uint8* dst_v, int pix); + void RGB565ToUVRow_Any_NEON(const uint8* src_rgb565, int src_stride_rgb565, + uint8* dst_u, uint8* dst_v, int pix); + void ARGB1555ToUVRow_Any_NEON(const uint8* src_argb1555, + int src_stride_argb1555, + uint8* dst_u, uint8* dst_v, int pix); + void ARGB4444ToUVRow_Any_NEON(const uint8* src_argb4444, + int src_stride_argb4444, + uint8* dst_u, uint8* dst_v, int pix); + void ARGBToUVRow_C(const uint8* src_argb, int src_stride_argb, + uint8* dst_u, uint8* dst_v, int width); + void ARGBToUVJRow_C(const uint8* src_argb, int src_stride_argb, + uint8* dst_u, uint8* dst_v, int width); + void BGRAToUVRow_C(const uint8* src_bgra, int src_stride_bgra, + uint8* dst_u, uint8* dst_v, int width); + void ABGRToUVRow_C(const uint8* src_abgr, int src_stride_abgr, uint8* dst_u, uint8* dst_v, int width); -void ARGB4444ToUVRow_C(const uint8* src_argb4444, int src_stride_argb4444, + void RGBAToUVRow_C(const uint8* src_rgba, int src_stride_rgba, uint8* dst_u, uint8* dst_v, int width); + void RGB24ToUVRow_C(const uint8* src_rgb24, int src_stride_rgb24, + uint8* dst_u, uint8* dst_v, int width); + void RAWToUVRow_C(const uint8* src_raw, int src_stride_raw, + uint8* dst_u, uint8* dst_v, int width); + void RGB565ToUVRow_C(const uint8* src_rgb565, int src_stride_rgb565, + uint8* dst_u, uint8* dst_v, int width); + void ARGB1555ToUVRow_C(const uint8* src_argb1555, int src_stride_argb1555, + uint8* dst_u, uint8* dst_v, int width); + void ARGB4444ToUVRow_C(const uint8* src_argb4444, int src_stride_argb4444, + uint8* dst_u, uint8* dst_v, int width); -void ARGBToUV444Row_SSSE3(const uint8* src_argb, - uint8* dst_u, uint8* dst_v, int width); -void ARGBToUV444Row_Any_SSSE3(const uint8* src_argb, + void ARGBToUV444Row_SSSE3(const uint8* src_argb, uint8* dst_u, uint8* dst_v, int width); + void ARGBToUV444Row_Any_SSSE3(const uint8* src_argb, + uint8* dst_u, uint8* dst_v, int width); -void ARGBToUV422Row_SSSE3(const uint8* src_argb, - uint8* dst_u, uint8* dst_v, int width); -void ARGBToUV422Row_Any_SSSE3(const uint8* src_argb, + void ARGBToUV422Row_SSSE3(const uint8* src_argb, uint8* dst_u, uint8* dst_v, int width); + void ARGBToUV422Row_Any_SSSE3(const uint8* src_argb, + uint8* dst_u, uint8* dst_v, int width); -void ARGBToUV444Row_C(const uint8* src_argb, - uint8* dst_u, uint8* dst_v, int width); -void ARGBToUV422Row_C(const uint8* src_argb, - uint8* dst_u, uint8* dst_v, int width); -void ARGBToUV411Row_C(const uint8* src_argb, - uint8* dst_u, uint8* dst_v, int width); + void ARGBToUV444Row_C(const uint8* src_argb, + uint8* dst_u, uint8* dst_v, int width); + void ARGBToUV422Row_C(const uint8* src_argb, + uint8* dst_u, uint8* dst_v, int width); + void ARGBToUV411Row_C(const uint8* src_argb, + uint8* dst_u, uint8* dst_v, int width); -void MirrorRow_AVX2(const uint8* src, uint8* dst, int width); -void MirrorRow_SSSE3(const uint8* src, uint8* dst, int width); -void MirrorRow_SSE2(const uint8* src, uint8* dst, int width); -void MirrorRow_NEON(const uint8* src, uint8* dst, int width); -void MirrorRow_MIPS_DSPR2(const uint8* src, uint8* dst, int width); -void MirrorRow_C(const uint8* src, uint8* dst, int width); + void MirrorRow_AVX2(const uint8* src, uint8* dst, int width); + void MirrorRow_SSSE3(const uint8* src, uint8* dst, int width); + void MirrorRow_SSE2(const uint8* src, uint8* dst, int width); + void MirrorRow_NEON(const uint8* src, uint8* dst, int width); + void MirrorRow_MIPS_DSPR2(const uint8* src, uint8* dst, int width); + void MirrorRow_C(const uint8* src, uint8* dst, int width); -void MirrorUVRow_SSSE3(const uint8* src_uv, uint8* dst_u, uint8* dst_v, + void MirrorUVRow_SSSE3(const uint8* src_uv, uint8* dst_u, uint8* dst_v, + int width); + void MirrorUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, + int width); + void MirrorUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, + int width); + void MirrorUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int width); -void MirrorUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, - int width); -void MirrorUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, - int width); -void MirrorUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, - int width); - -void ARGBMirrorRow_AVX2(const uint8* src, uint8* dst, int width); -void ARGBMirrorRow_SSSE3(const uint8* src, uint8* dst, int width); -void ARGBMirrorRow_NEON(const uint8* src, uint8* dst, int width); -void ARGBMirrorRow_C(const uint8* src, uint8* dst, int width); - -void SplitUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); -void SplitUVRow_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); -void SplitUVRow_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); -void SplitUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); -void SplitUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, - int pix); -void SplitUVRow_Any_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, - int pix); -void SplitUVRow_Any_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, - int pix); -void SplitUVRow_Any_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, - int pix); -void SplitUVRow_Any_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, + + void ARGBMirrorRow_AVX2(const uint8* src, uint8* dst, int width); + void ARGBMirrorRow_SSSE3(const uint8* src, uint8* dst, int width); + void ARGBMirrorRow_NEON(const uint8* src, uint8* dst, int width); + void ARGBMirrorRow_C(const uint8* src, uint8* dst, int width); + + void SplitUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); + void SplitUVRow_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); + void SplitUVRow_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); + void SplitUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); + void SplitUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); + void SplitUVRow_Any_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, + int pix); + void SplitUVRow_Any_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, + int pix); + void SplitUVRow_Any_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, + int pix); + void SplitUVRow_Any_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, + int pix); -void MergeUVRow_C(const uint8* src_u, const uint8* src_v, uint8* dst_uv, - int width); -void MergeUVRow_SSE2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, - int width); -void MergeUVRow_AVX2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, - int width); -void MergeUVRow_NEON(const uint8* src_u, const uint8* src_v, uint8* dst_uv, - int width); -void MergeUVRow_Any_SSE2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, + void MergeUVRow_C(const uint8* src_u, const uint8* src_v, uint8* dst_uv, + int width); + void MergeUVRow_SSE2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, int width); -void MergeUVRow_Any_AVX2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, + void MergeUVRow_AVX2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, int width); -void MergeUVRow_Any_NEON(const uint8* src_u, const uint8* src_v, uint8* dst_uv, + void MergeUVRow_NEON(const uint8* src_u, const uint8* src_v, uint8* dst_uv, int width); + void MergeUVRow_Any_SSE2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, + int width); + void MergeUVRow_Any_AVX2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, + int width); + void MergeUVRow_Any_NEON(const uint8* src_u, const uint8* src_v, uint8* dst_uv, + int width); -void CopyRow_SSE2(const uint8* src, uint8* dst, int count); -void CopyRow_AVX(const uint8* src, uint8* dst, int count); -void CopyRow_ERMS(const uint8* src, uint8* dst, int count); -void CopyRow_X86(const uint8* src, uint8* dst, int count); -void CopyRow_NEON(const uint8* src, uint8* dst, int count); -void CopyRow_MIPS(const uint8* src, uint8* dst, int count); -void CopyRow_C(const uint8* src, uint8* dst, int count); - -void CopyRow_16_C(const uint16* src, uint16* dst, int count); - -void ARGBCopyAlphaRow_C(const uint8* src_argb, uint8* dst_argb, int width); -void ARGBCopyAlphaRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); -void ARGBCopyAlphaRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); - -void ARGBCopyYToAlphaRow_C(const uint8* src_y, uint8* dst_argb, int width); -void ARGBCopyYToAlphaRow_SSE2(const uint8* src_y, uint8* dst_argb, int width); -void ARGBCopyYToAlphaRow_AVX2(const uint8* src_y, uint8* dst_argb, int width); - -void SetRow_X86(uint8* dst, uint32 v32, int count); -void ARGBSetRows_X86(uint8* dst, uint32 v32, int width, - int dst_stride, int height); -void SetRow_NEON(uint8* dst, uint32 v32, int count); -void ARGBSetRows_NEON(uint8* dst, uint32 v32, int width, - int dst_stride, int height); -void SetRow_C(uint8* dst, uint32 v32, int count); -void ARGBSetRows_C(uint8* dst, uint32 v32, int width, int dst_stride, - int height); + void CopyRow_SSE2(const uint8* src, uint8* dst, int count); + void CopyRow_AVX(const uint8* src, uint8* dst, int count); + void CopyRow_ERMS(const uint8* src, uint8* dst, int count); + void CopyRow_X86(const uint8* src, uint8* dst, int count); + void CopyRow_NEON(const uint8* src, uint8* dst, int count); + void CopyRow_MIPS(const uint8* src, uint8* dst, int count); + void CopyRow_C(const uint8* src, uint8* dst, int count); + + void CopyRow_16_C(const uint16* src, uint16* dst, int count); + + void ARGBCopyAlphaRow_C(const uint8* src_argb, uint8* dst_argb, int width); + void ARGBCopyAlphaRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); + void ARGBCopyAlphaRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); + + void ARGBCopyYToAlphaRow_C(const uint8* src_y, uint8* dst_argb, int width); + void ARGBCopyYToAlphaRow_SSE2(const uint8* src_y, uint8* dst_argb, int width); + void ARGBCopyYToAlphaRow_AVX2(const uint8* src_y, uint8* dst_argb, int width); + + void SetRow_X86(uint8* dst, uint32 v32, int count); + void ARGBSetRows_X86(uint8* dst, uint32 v32, int width, + int dst_stride, int height); + void SetRow_NEON(uint8* dst, uint32 v32, int count); + void ARGBSetRows_NEON(uint8* dst, uint32 v32, int width, + int dst_stride, int height); + void SetRow_C(uint8* dst, uint32 v32, int count); + void ARGBSetRows_C(uint8* dst, uint32 v32, int width, int dst_stride, + int height); // ARGBShufflers for BGRAToARGB etc. -void ARGBShuffleRow_C(const uint8* src_argb, uint8* dst_argb, - const uint8* shuffler, int pix); -void ARGBShuffleRow_SSE2(const uint8* src_argb, uint8* dst_argb, - const uint8* shuffler, int pix); -void ARGBShuffleRow_SSSE3(const uint8* src_argb, uint8* dst_argb, + void ARGBShuffleRow_C(const uint8* src_argb, uint8* dst_argb, const uint8* shuffler, int pix); -void ARGBShuffleRow_AVX2(const uint8* src_argb, uint8* dst_argb, - const uint8* shuffler, int pix); -void ARGBShuffleRow_NEON(const uint8* src_argb, uint8* dst_argb, - const uint8* shuffler, int pix); -void ARGBShuffleRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, + void ARGBShuffleRow_SSE2(const uint8* src_argb, uint8* dst_argb, const uint8* shuffler, int pix); -void ARGBShuffleRow_Any_SSSE3(const uint8* src_argb, uint8* dst_argb, + void ARGBShuffleRow_SSSE3(const uint8* src_argb, uint8* dst_argb, const uint8* shuffler, int pix); -void ARGBShuffleRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, + void ARGBShuffleRow_AVX2(const uint8* src_argb, uint8* dst_argb, const uint8* shuffler, int pix); -void ARGBShuffleRow_Any_NEON(const uint8* src_argb, uint8* dst_argb, + void ARGBShuffleRow_NEON(const uint8* src_argb, uint8* dst_argb, const uint8* shuffler, int pix); - -void RGB24ToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix); -void RAWToARGBRow_SSSE3(const uint8* src_raw, uint8* dst_argb, int pix); -void RGB565ToARGBRow_SSE2(const uint8* src_rgb565, uint8* dst_argb, int pix); -void ARGB1555ToARGBRow_SSE2(const uint8* src_argb1555, uint8* dst_argb, - int pix); -void ARGB4444ToARGBRow_SSE2(const uint8* src_argb4444, uint8* dst_argb, - int pix); - -void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix); -void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int pix); -void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int pix); -void ARGB1555ToARGBRow_NEON(const uint8* src_argb1555, uint8* dst_argb, - int pix); -void ARGB4444ToARGBRow_NEON(const uint8* src_argb4444, uint8* dst_argb, - int pix); -void RGB24ToARGBRow_C(const uint8* src_rgb24, uint8* dst_argb, int pix); -void RAWToARGBRow_C(const uint8* src_raw, uint8* dst_argb, int pix); -void RGB565ToARGBRow_C(const uint8* src_rgb, uint8* dst_argb, int pix); -void ARGB1555ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int pix); -void ARGB4444ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int pix); -void RGB24ToARGBRow_Any_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix); -void RAWToARGBRow_Any_SSSE3(const uint8* src_raw, uint8* dst_argb, int pix); -void RGB565ToARGBRow_Any_SSE2(const uint8* src_rgb565, uint8* dst_argb, - int pix); -void ARGB1555ToARGBRow_Any_SSE2(const uint8* src_argb1555, uint8* dst_argb, + void ARGBShuffleRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, + const uint8* shuffler, int pix); + void ARGBShuffleRow_Any_SSSE3(const uint8* src_argb, uint8* dst_argb, + const uint8* shuffler, int pix); + void ARGBShuffleRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, + const uint8* shuffler, int pix); + void ARGBShuffleRow_Any_NEON(const uint8* src_argb, uint8* dst_argb, + const uint8* shuffler, int pix); + + void RGB24ToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix); + void RAWToARGBRow_SSSE3(const uint8* src_raw, uint8* dst_argb, int pix); + void RGB565ToARGBRow_SSE2(const uint8* src_rgb565, uint8* dst_argb, int pix); + void ARGB1555ToARGBRow_SSE2(const uint8* src_argb1555, uint8* dst_argb, int pix); -void ARGB4444ToARGBRow_Any_SSE2(const uint8* src_argb4444, uint8* dst_argb, + void ARGB4444ToARGBRow_SSE2(const uint8* src_argb4444, uint8* dst_argb, int pix); -void RGB24ToARGBRow_Any_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix); -void RAWToARGBRow_Any_NEON(const uint8* src_raw, uint8* dst_argb, int pix); -void RGB565ToARGBRow_Any_NEON(const uint8* src_rgb565, uint8* dst_argb, - int pix); -void ARGB1555ToARGBRow_Any_NEON(const uint8* src_argb1555, uint8* dst_argb, + + void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix); + void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int pix); + void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int pix); + void ARGB1555ToARGBRow_NEON(const uint8* src_argb1555, uint8* dst_argb, int pix); -void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, uint8* dst_argb, + void ARGB4444ToARGBRow_NEON(const uint8* src_argb4444, uint8* dst_argb, int pix); - -void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); - -void ARGBToRGB24Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToRGB565Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToARGB1555Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToARGB4444Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); - -void ARGBToRGBARow_C(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToRGB24Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToRAWRow_C(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToRGB565Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToARGB1555Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToARGB4444Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); - -void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix); -void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int pix); -void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix); -void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int pix); -void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int pix); - -void I444ToARGBRow_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToARGBRow_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I411ToARGBRow_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void NV12ToARGBRow_C(const uint8* src_y, - const uint8* src_uv, - uint8* dst_argb, - int width); -void NV21ToRGB565Row_C(const uint8* src_y, - const uint8* src_vu, - uint8* dst_argb, - int width); -void NV12ToRGB565Row_C(const uint8* src_y, - const uint8* src_uv, - uint8* dst_argb, - int width); -void NV21ToARGBRow_C(const uint8* src_y, - const uint8* src_vu, - uint8* dst_argb, - int width); -void YUY2ToARGBRow_C(const uint8* src_yuy2, - uint8* dst_argb, - int width); -void UYVYToARGBRow_C(const uint8* src_uyvy, - uint8* dst_argb, - int width); -void I422ToBGRARow_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_bgra, - int width); -void I422ToABGRRow_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_abgr, - int width); -void I422ToRGBARow_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_rgba, - int width); -void I422ToRGB24Row_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_rgb24, - int width); -void I422ToRAWRow_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_raw, - int width); -void I422ToARGB4444Row_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb4444, - int width); -void I422ToARGB1555Row_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb4444, - int width); -void I422ToRGB565Row_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_rgb565, - int width); -void YToARGBRow_C(const uint8* src_y, - uint8* dst_argb, - int width); -void I422ToARGBRow_AVX2(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToBGRARow_AVX2(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToRGBARow_AVX2(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToABGRRow_AVX2(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I444ToARGBRow_SSSE3(const uint8* src_y, + void RGB24ToARGBRow_C(const uint8* src_rgb24, uint8* dst_argb, int pix); + void RAWToARGBRow_C(const uint8* src_raw, uint8* dst_argb, int pix); + void RGB565ToARGBRow_C(const uint8* src_rgb, uint8* dst_argb, int pix); + void ARGB1555ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int pix); + void ARGB4444ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int pix); + void RGB24ToARGBRow_Any_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix); + void RAWToARGBRow_Any_SSSE3(const uint8* src_raw, uint8* dst_argb, int pix); + void RGB565ToARGBRow_Any_SSE2(const uint8* src_rgb565, uint8* dst_argb, + int pix); + void ARGB1555ToARGBRow_Any_SSE2(const uint8* src_argb1555, uint8* dst_argb, + int pix); + void ARGB4444ToARGBRow_Any_SSE2(const uint8* src_argb4444, uint8* dst_argb, + int pix); + void RGB24ToARGBRow_Any_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix); + void RAWToARGBRow_Any_NEON(const uint8* src_raw, uint8* dst_argb, int pix); + void RGB565ToARGBRow_Any_NEON(const uint8* src_rgb565, uint8* dst_argb, + int pix); + void ARGB1555ToARGBRow_Any_NEON(const uint8* src_argb1555, uint8* dst_argb, + int pix); + void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, uint8* dst_argb, + int pix); + + void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); + + void ARGBToRGB24Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToRGB565Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToARGB1555Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToARGB4444Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); + + void ARGBToRGBARow_C(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToRGB24Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToRAWRow_C(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToRGB565Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToARGB1555Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToARGB4444Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); + + void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix); + void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int pix); + void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix); + void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int pix); + void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int pix); + + void I444ToARGBRow_C(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_argb, int width); -void I422ToARGBRow_SSSE3(const uint8* src_y, + void I422ToARGBRow_C(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_argb, int width); -void I411ToARGBRow_SSSE3(const uint8* src_y, + void I411ToARGBRow_C(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_argb, int width); -void NV12ToARGBRow_SSSE3(const uint8* src_y, + void NV12ToARGBRow_C(const uint8* src_y, const uint8* src_uv, uint8* dst_argb, int width); -void NV21ToARGBRow_SSSE3(const uint8* src_y, - const uint8* src_vu, - uint8* dst_argb, - int width); -void NV12ToRGB565Row_SSSE3(const uint8* src_y, - const uint8* src_uv, + void NV21ToRGB565Row_C(const uint8* src_y, + const uint8* src_vu, uint8* dst_argb, int width); -void NV21ToRGB565Row_SSSE3(const uint8* src_y, - const uint8* src_vu, + void NV12ToRGB565Row_C(const uint8* src_y, + const uint8* src_uv, uint8* dst_argb, int width); -void YUY2ToARGBRow_SSSE3(const uint8* src_yuy2, + void NV21ToARGBRow_C(const uint8* src_y, + const uint8* src_vu, uint8* dst_argb, int width); -void UYVYToARGBRow_SSSE3(const uint8* src_uyvy, + void YUY2ToARGBRow_C(const uint8* src_yuy2, uint8* dst_argb, int width); -void I422ToBGRARow_SSSE3(const uint8* src_y, + void UYVYToARGBRow_C(const uint8* src_uyvy, + uint8* dst_argb, + int width); + void I422ToBGRARow_C(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_bgra, int width); -void I422ToABGRRow_SSSE3(const uint8* src_y, + void I422ToABGRRow_C(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_abgr, int width); -void I422ToRGBARow_SSSE3(const uint8* src_y, + void I422ToRGBARow_C(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_rgba, int width); -void I422ToARGB4444Row_SSSE3(const uint8* src_y, + void I422ToRGB24Row_C(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_rgb24, + int width); + void I422ToRAWRow_C(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_raw, + int width); + void I422ToARGB4444Row_C(const uint8* src_y, const uint8* src_u, const uint8* src_v, - uint8* dst_argb, + uint8* dst_argb4444, int width); -void I422ToARGB1555Row_SSSE3(const uint8* src_y, + void I422ToARGB1555Row_C(const uint8* src_y, const uint8* src_u, const uint8* src_v, - uint8* dst_argb, + uint8* dst_argb4444, int width); -void I422ToRGB565Row_SSSE3(const uint8* src_y, + void I422ToRGB565Row_C(const uint8* src_y, const uint8* src_u, const uint8* src_v, - uint8* dst_argb, + uint8* dst_rgb565, int width); -void I422ToRGB24Row_SSSE3(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_rgb24, - int width); -void I422ToRAWRow_SSSE3(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_raw, - int width); -void I422ToARGBRow_Any_AVX2(const uint8* src_y, + void YToARGBRow_C(const uint8* src_y, + uint8* dst_argb, + int width); + void I422ToARGBRow_AVX2(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_argb, int width); -void I422ToBGRARow_Any_AVX2(const uint8* src_y, + void I422ToBGRARow_AVX2(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_argb, int width); -void I422ToRGBARow_Any_AVX2(const uint8* src_y, + void I422ToRGBARow_AVX2(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_argb, int width); -void I422ToABGRRow_Any_AVX2(const uint8* src_y, + void I422ToABGRRow_AVX2(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_argb, int width); -void I444ToARGBRow_Any_SSSE3(const uint8* src_y, + void I444ToARGBRow_SSSE3(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_argb, int width); -void I422ToARGBRow_Any_SSSE3(const uint8* src_y, + void I422ToARGBRow_SSSE3(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_argb, int width); -void I411ToARGBRow_Any_SSSE3(const uint8* src_y, + void I411ToARGBRow_SSSE3(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_argb, int width); -void NV12ToARGBRow_Any_SSSE3(const uint8* src_y, + void NV12ToARGBRow_SSSE3(const uint8* src_y, const uint8* src_uv, uint8* dst_argb, int width); -void NV21ToARGBRow_Any_SSSE3(const uint8* src_y, + void NV21ToARGBRow_SSSE3(const uint8* src_y, const uint8* src_vu, uint8* dst_argb, int width); -void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y, + void NV12ToRGB565Row_SSSE3(const uint8* src_y, const uint8* src_uv, uint8* dst_argb, int width); -void NV21ToRGB565Row_Any_SSSE3(const uint8* src_y, + void NV21ToRGB565Row_SSSE3(const uint8* src_y, const uint8* src_vu, uint8* dst_argb, int width); -void YUY2ToARGBRow_Any_SSSE3(const uint8* src_yuy2, + void YUY2ToARGBRow_SSSE3(const uint8* src_yuy2, uint8* dst_argb, int width); -void UYVYToARGBRow_Any_SSSE3(const uint8* src_uyvy, + void UYVYToARGBRow_SSSE3(const uint8* src_uyvy, uint8* dst_argb, int width); -void I422ToBGRARow_Any_SSSE3(const uint8* src_y, + void I422ToBGRARow_SSSE3(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_bgra, int width); -void I422ToABGRRow_Any_SSSE3(const uint8* src_y, + void I422ToABGRRow_SSSE3(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_abgr, int width); -void I422ToRGBARow_Any_SSSE3(const uint8* src_y, + void I422ToRGBARow_SSSE3(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_rgba, int width); -void I422ToARGB4444Row_Any_SSSE3(const uint8* src_y, + void I422ToARGB4444Row_SSSE3(const uint8* src_y, const uint8* src_u, const uint8* src_v, - uint8* dst_rgba, + uint8* dst_argb, int width); -void I422ToARGB1555Row_Any_SSSE3(const uint8* src_y, + void I422ToARGB1555Row_SSSE3(const uint8* src_y, const uint8* src_u, const uint8* src_v, - uint8* dst_rgba, + uint8* dst_argb, int width); -void I422ToRGB565Row_Any_SSSE3(const uint8* src_y, + void I422ToRGB565Row_SSSE3(const uint8* src_y, const uint8* src_u, const uint8* src_v, - uint8* dst_rgba, + uint8* dst_argb, int width); -void I422ToRGB24Row_Any_SSSE3(const uint8* src_y, + void I422ToRGB24Row_SSSE3(const uint8* src_y, const uint8* src_u, const uint8* src_v, - uint8* dst_argb, + uint8* dst_rgb24, int width); -void I422ToRAWRow_Any_SSSE3(const uint8* src_y, + void I422ToRAWRow_SSSE3(const uint8* src_y, const uint8* src_u, const uint8* src_v, - uint8* dst_argb, + uint8* dst_raw, int width); -void YToARGBRow_SSE2(const uint8* src_y, - uint8* dst_argb, - int width); -void YToARGBRow_NEON(const uint8* src_y, - uint8* dst_argb, - int width); -void YToARGBRow_Any_SSE2(const uint8* src_y, + void I422ToARGBRow_Any_AVX2(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToBGRARow_Any_AVX2(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToRGBARow_Any_AVX2(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToABGRRow_Any_AVX2(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I444ToARGBRow_Any_SSSE3(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToARGBRow_Any_SSSE3(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I411ToARGBRow_Any_SSSE3(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void NV12ToARGBRow_Any_SSSE3(const uint8* src_y, + const uint8* src_uv, + uint8* dst_argb, + int width); + void NV21ToARGBRow_Any_SSSE3(const uint8* src_y, + const uint8* src_vu, + uint8* dst_argb, + int width); + void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y, + const uint8* src_uv, + uint8* dst_argb, + int width); + void NV21ToRGB565Row_Any_SSSE3(const uint8* src_y, + const uint8* src_vu, + uint8* dst_argb, + int width); + void YUY2ToARGBRow_Any_SSSE3(const uint8* src_yuy2, + uint8* dst_argb, + int width); + void UYVYToARGBRow_Any_SSSE3(const uint8* src_uyvy, + uint8* dst_argb, + int width); + void I422ToBGRARow_Any_SSSE3(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_bgra, + int width); + void I422ToABGRRow_Any_SSSE3(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_abgr, + int width); + void I422ToRGBARow_Any_SSSE3(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_rgba, + int width); + void I422ToARGB4444Row_Any_SSSE3(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_rgba, + int width); + void I422ToARGB1555Row_Any_SSSE3(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_rgba, + int width); + void I422ToRGB565Row_Any_SSSE3(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_rgba, + int width); + void I422ToRGB24Row_Any_SSSE3(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToRAWRow_Any_SSSE3(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void YToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int width); -void YToARGBRow_Any_NEON(const uint8* src_y, + void YToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int width); + void YToARGBRow_Any_SSE2(const uint8* src_y, + uint8* dst_argb, + int width); + void YToARGBRow_Any_NEON(const uint8* src_y, + uint8* dst_argb, + int width); // ARGB preattenuated alpha blend. -void ARGBBlendRow_SSSE3(const uint8* src_argb, const uint8* src_argb1, + void ARGBBlendRow_SSSE3(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + void ARGBBlendRow_SSE2(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + void ARGBBlendRow_NEON(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + void ARGBBlendRow_C(const uint8* src_argb, const uint8* src_argb1, uint8* dst_argb, int width); -void ARGBBlendRow_SSE2(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBBlendRow_NEON(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBBlendRow_C(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); // ARGB multiply images. Same API as Blend, but these require // pointer and width alignment for SSE2. -void ARGBMultiplyRow_C(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBMultiplyRow_SSE2(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBMultiplyRow_Any_SSE2(const uint8* src_argb, const uint8* src_argb1, + void ARGBMultiplyRow_C(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + void ARGBMultiplyRow_SSE2(const uint8* src_argb, const uint8* src_argb1, uint8* dst_argb, int width); -void ARGBMultiplyRow_AVX2(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBMultiplyRow_Any_AVX2(const uint8* src_argb, const uint8* src_argb1, + void ARGBMultiplyRow_Any_SSE2(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + void ARGBMultiplyRow_AVX2(const uint8* src_argb, const uint8* src_argb1, uint8* dst_argb, int width); -void ARGBMultiplyRow_NEON(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBMultiplyRow_Any_NEON(const uint8* src_argb, const uint8* src_argb1, + void ARGBMultiplyRow_Any_AVX2(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + void ARGBMultiplyRow_NEON(const uint8* src_argb, const uint8* src_argb1, uint8* dst_argb, int width); + void ARGBMultiplyRow_Any_NEON(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); // ARGB add images. -void ARGBAddRow_C(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBAddRow_SSE2(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBAddRow_Any_SSE2(const uint8* src_argb, const uint8* src_argb1, + void ARGBAddRow_C(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + void ARGBAddRow_SSE2(const uint8* src_argb, const uint8* src_argb1, uint8* dst_argb, int width); -void ARGBAddRow_AVX2(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBAddRow_Any_AVX2(const uint8* src_argb, const uint8* src_argb1, + void ARGBAddRow_Any_SSE2(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + void ARGBAddRow_AVX2(const uint8* src_argb, const uint8* src_argb1, uint8* dst_argb, int width); -void ARGBAddRow_NEON(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBAddRow_Any_NEON(const uint8* src_argb, const uint8* src_argb1, + void ARGBAddRow_Any_AVX2(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + void ARGBAddRow_NEON(const uint8* src_argb, const uint8* src_argb1, uint8* dst_argb, int width); + void ARGBAddRow_Any_NEON(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); // ARGB subtract images. Same API as Blend, but these require // pointer and width alignment for SSE2. -void ARGBSubtractRow_C(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBSubtractRow_SSE2(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBSubtractRow_Any_SSE2(const uint8* src_argb, const uint8* src_argb1, + void ARGBSubtractRow_C(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + void ARGBSubtractRow_SSE2(const uint8* src_argb, const uint8* src_argb1, uint8* dst_argb, int width); -void ARGBSubtractRow_AVX2(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBSubtractRow_Any_AVX2(const uint8* src_argb, const uint8* src_argb1, + void ARGBSubtractRow_Any_SSE2(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + void ARGBSubtractRow_AVX2(const uint8* src_argb, const uint8* src_argb1, uint8* dst_argb, int width); -void ARGBSubtractRow_NEON(const uint8* src_argb, const uint8* src_argb1, - uint8* dst_argb, int width); -void ARGBSubtractRow_Any_NEON(const uint8* src_argb, const uint8* src_argb1, + void ARGBSubtractRow_Any_AVX2(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + void ARGBSubtractRow_NEON(const uint8* src_argb, const uint8* src_argb1, uint8* dst_argb, int width); - -void ARGBToRGB24Row_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToRAWRow_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); - -void ARGBToRGB24Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToRAWRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToRGB565Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToARGB1555Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); -void ARGBToARGB4444Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); - -void I444ToARGBRow_Any_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToARGBRow_Any_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I411ToARGBRow_Any_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToBGRARow_Any_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToABGRRow_Any_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToRGBARow_Any_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToRGB24Row_Any_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToRAWRow_Any_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToARGB4444Row_Any_NEON(const uint8* src_y, + void ARGBSubtractRow_Any_NEON(const uint8* src_argb, const uint8* src_argb1, + uint8* dst_argb, int width); + + void ARGBToRGB24Row_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToRAWRow_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); + + void ARGBToRGB24Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToRAWRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToRGB565Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToARGB1555Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); + void ARGBToARGB4444Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); + + void I444ToARGBRow_Any_NEON(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_argb, int width); -void I422ToARGB1555Row_Any_NEON(const uint8* src_y, + void I422ToARGBRow_Any_NEON(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_argb, int width); -void I422ToRGB565Row_Any_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void NV12ToARGBRow_Any_NEON(const uint8* src_y, - const uint8* src_uv, - uint8* dst_argb, - int width); -void NV21ToARGBRow_Any_NEON(const uint8* src_y, - const uint8* src_uv, - uint8* dst_argb, - int width); -void NV12ToRGB565Row_Any_NEON(const uint8* src_y, - const uint8* src_uv, - uint8* dst_argb, - int width); -void NV21ToRGB565Row_Any_NEON(const uint8* src_y, - const uint8* src_uv, - uint8* dst_argb, - int width); -void YUY2ToARGBRow_Any_NEON(const uint8* src_yuy2, - uint8* dst_argb, - int width); -void UYVYToARGBRow_Any_NEON(const uint8* src_uyvy, - uint8* dst_argb, - int width); -void I422ToARGBRow_MIPS_DSPR2(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToBGRARow_MIPS_DSPR2(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToABGRRow_MIPS_DSPR2(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToARGBRow_MIPS_DSPR2(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToBGRARow_MIPS_DSPR2(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); -void I422ToABGRRow_MIPS_DSPR2(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_argb, - int width); - -void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int pix); -void YUY2ToUVRow_AVX2(const uint8* src_yuy2, int stride_yuy2, - uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToUV422Row_AVX2(const uint8* src_yuy2, - uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix); -void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, - uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToUV422Row_SSE2(const uint8* src_yuy2, - uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToYRow_NEON(const uint8* src_yuy2, uint8* dst_y, int pix); -void YUY2ToUVRow_NEON(const uint8* src_yuy2, int stride_yuy2, - uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToUV422Row_NEON(const uint8* src_yuy2, - uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToYRow_C(const uint8* src_yuy2, uint8* dst_y, int pix); -void YUY2ToUVRow_C(const uint8* src_yuy2, int stride_yuy2, - uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToUV422Row_C(const uint8* src_yuy2, - uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToYRow_Any_AVX2(const uint8* src_yuy2, uint8* dst_y, int pix); -void YUY2ToUVRow_Any_AVX2(const uint8* src_yuy2, int stride_yuy2, + void I411ToARGBRow_Any_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToBGRARow_Any_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToABGRRow_Any_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToRGBARow_Any_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToRGB24Row_Any_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToRAWRow_Any_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToARGB4444Row_Any_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToARGB1555Row_Any_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToRGB565Row_Any_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void NV12ToARGBRow_Any_NEON(const uint8* src_y, + const uint8* src_uv, + uint8* dst_argb, + int width); + void NV21ToARGBRow_Any_NEON(const uint8* src_y, + const uint8* src_uv, + uint8* dst_argb, + int width); + void NV12ToRGB565Row_Any_NEON(const uint8* src_y, + const uint8* src_uv, + uint8* dst_argb, + int width); + void NV21ToRGB565Row_Any_NEON(const uint8* src_y, + const uint8* src_uv, + uint8* dst_argb, + int width); + void YUY2ToARGBRow_Any_NEON(const uint8* src_yuy2, + uint8* dst_argb, + int width); + void UYVYToARGBRow_Any_NEON(const uint8* src_uyvy, + uint8* dst_argb, + int width); + void I422ToARGBRow_MIPS_DSPR2(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToBGRARow_MIPS_DSPR2(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToABGRRow_MIPS_DSPR2(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToARGBRow_MIPS_DSPR2(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToBGRARow_MIPS_DSPR2(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + void I422ToABGRRow_MIPS_DSPR2(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_argb, + int width); + + void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int pix); + void YUY2ToUVRow_AVX2(const uint8* src_yuy2, int stride_yuy2, uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToUV422Row_Any_AVX2(const uint8* src_yuy2, + void YUY2ToUV422Row_AVX2(const uint8* src_yuy2, uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToYRow_Any_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix); -void YUY2ToUVRow_Any_SSE2(const uint8* src_yuy2, int stride_yuy2, + void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix); + void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToUV422Row_Any_SSE2(const uint8* src_yuy2, + void YUY2ToUV422Row_SSE2(const uint8* src_yuy2, uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToYRow_Any_NEON(const uint8* src_yuy2, uint8* dst_y, int pix); -void YUY2ToUVRow_Any_NEON(const uint8* src_yuy2, int stride_yuy2, + void YUY2ToYRow_NEON(const uint8* src_yuy2, uint8* dst_y, int pix); + void YUY2ToUVRow_NEON(const uint8* src_yuy2, int stride_yuy2, uint8* dst_u, uint8* dst_v, int pix); -void YUY2ToUV422Row_Any_NEON(const uint8* src_yuy2, + void YUY2ToUV422Row_NEON(const uint8* src_yuy2, uint8* dst_u, uint8* dst_v, int pix); -void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); -void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, - uint8* dst_u, uint8* dst_v, int pix); -void UYVYToUV422Row_AVX2(const uint8* src_uyvy, - uint8* dst_u, uint8* dst_v, int pix); -void UYVYToYRow_SSE2(const uint8* src_uyvy, uint8* dst_y, int pix); -void UYVYToUVRow_SSE2(const uint8* src_uyvy, int stride_uyvy, - uint8* dst_u, uint8* dst_v, int pix); -void UYVYToUV422Row_SSE2(const uint8* src_uyvy, - uint8* dst_u, uint8* dst_v, int pix); -void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); -void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, - uint8* dst_u, uint8* dst_v, int pix); -void UYVYToUV422Row_AVX2(const uint8* src_uyvy, - uint8* dst_u, uint8* dst_v, int pix); -void UYVYToYRow_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); -void UYVYToUVRow_NEON(const uint8* src_uyvy, int stride_uyvy, - uint8* dst_u, uint8* dst_v, int pix); -void UYVYToUV422Row_NEON(const uint8* src_uyvy, - uint8* dst_u, uint8* dst_v, int pix); - -void UYVYToYRow_C(const uint8* src_uyvy, uint8* dst_y, int pix); -void UYVYToUVRow_C(const uint8* src_uyvy, int stride_uyvy, - uint8* dst_u, uint8* dst_v, int pix); -void UYVYToUV422Row_C(const uint8* src_uyvy, - uint8* dst_u, uint8* dst_v, int pix); -void UYVYToYRow_Any_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); -void UYVYToUVRow_Any_AVX2(const uint8* src_uyvy, int stride_uyvy, + void YUY2ToYRow_C(const uint8* src_yuy2, uint8* dst_y, int pix); + void YUY2ToUVRow_C(const uint8* src_yuy2, int stride_yuy2, + uint8* dst_u, uint8* dst_v, int pix); + void YUY2ToUV422Row_C(const uint8* src_yuy2, uint8* dst_u, uint8* dst_v, int pix); -void UYVYToUV422Row_Any_AVX2(const uint8* src_uyvy, + void YUY2ToYRow_Any_AVX2(const uint8* src_yuy2, uint8* dst_y, int pix); + void YUY2ToUVRow_Any_AVX2(const uint8* src_yuy2, int stride_yuy2, + uint8* dst_u, uint8* dst_v, int pix); + void YUY2ToUV422Row_Any_AVX2(const uint8* src_yuy2, + uint8* dst_u, uint8* dst_v, int pix); + void YUY2ToYRow_Any_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix); + void YUY2ToUVRow_Any_SSE2(const uint8* src_yuy2, int stride_yuy2, + uint8* dst_u, uint8* dst_v, int pix); + void YUY2ToUV422Row_Any_SSE2(const uint8* src_yuy2, + uint8* dst_u, uint8* dst_v, int pix); + void YUY2ToYRow_Any_NEON(const uint8* src_yuy2, uint8* dst_y, int pix); + void YUY2ToUVRow_Any_NEON(const uint8* src_yuy2, int stride_yuy2, + uint8* dst_u, uint8* dst_v, int pix); + void YUY2ToUV422Row_Any_NEON(const uint8* src_yuy2, + uint8* dst_u, uint8* dst_v, int pix); + void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); + void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, + uint8* dst_u, uint8* dst_v, int pix); + void UYVYToUV422Row_AVX2(const uint8* src_uyvy, uint8* dst_u, uint8* dst_v, int pix); -void UYVYToYRow_Any_SSE2(const uint8* src_uyvy, uint8* dst_y, int pix); -void UYVYToUVRow_Any_SSE2(const uint8* src_uyvy, int stride_uyvy, + void UYVYToYRow_SSE2(const uint8* src_uyvy, uint8* dst_y, int pix); + void UYVYToUVRow_SSE2(const uint8* src_uyvy, int stride_uyvy, uint8* dst_u, uint8* dst_v, int pix); -void UYVYToUV422Row_Any_SSE2(const uint8* src_uyvy, + void UYVYToUV422Row_SSE2(const uint8* src_uyvy, uint8* dst_u, uint8* dst_v, int pix); -void UYVYToYRow_Any_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); -void UYVYToUVRow_Any_NEON(const uint8* src_uyvy, int stride_uyvy, + void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); + void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, uint8* dst_u, uint8* dst_v, int pix); -void UYVYToUV422Row_Any_NEON(const uint8* src_uyvy, + void UYVYToUV422Row_AVX2(const uint8* src_uyvy, + uint8* dst_u, uint8* dst_v, int pix); + void UYVYToYRow_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); + void UYVYToUVRow_NEON(const uint8* src_uyvy, int stride_uyvy, + uint8* dst_u, uint8* dst_v, int pix); + void UYVYToUV422Row_NEON(const uint8* src_uyvy, uint8* dst_u, uint8* dst_v, int pix); -void ARGBToBayerRow_C(const uint8* src_argb, uint8* dst_bayer, - uint32 selector, int pix); -void ARGBToBayerRow_SSSE3(const uint8* src_argb, uint8* dst_bayer, + void UYVYToYRow_C(const uint8* src_uyvy, uint8* dst_y, int pix); + void UYVYToUVRow_C(const uint8* src_uyvy, int stride_uyvy, + uint8* dst_u, uint8* dst_v, int pix); + void UYVYToUV422Row_C(const uint8* src_uyvy, + uint8* dst_u, uint8* dst_v, int pix); + void UYVYToYRow_Any_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); + void UYVYToUVRow_Any_AVX2(const uint8* src_uyvy, int stride_uyvy, + uint8* dst_u, uint8* dst_v, int pix); + void UYVYToUV422Row_Any_AVX2(const uint8* src_uyvy, + uint8* dst_u, uint8* dst_v, int pix); + void UYVYToYRow_Any_SSE2(const uint8* src_uyvy, uint8* dst_y, int pix); + void UYVYToUVRow_Any_SSE2(const uint8* src_uyvy, int stride_uyvy, + uint8* dst_u, uint8* dst_v, int pix); + void UYVYToUV422Row_Any_SSE2(const uint8* src_uyvy, + uint8* dst_u, uint8* dst_v, int pix); + void UYVYToYRow_Any_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); + void UYVYToUVRow_Any_NEON(const uint8* src_uyvy, int stride_uyvy, + uint8* dst_u, uint8* dst_v, int pix); + void UYVYToUV422Row_Any_NEON(const uint8* src_uyvy, + uint8* dst_u, uint8* dst_v, int pix); + + void ARGBToBayerRow_C(const uint8* src_argb, uint8* dst_bayer, uint32 selector, int pix); -void ARGBToBayerRow_NEON(const uint8* src_argb, uint8* dst_bayer, - uint32 selector, int pix); -void ARGBToBayerRow_Any_SSSE3(const uint8* src_argb, uint8* dst_bayer, + void ARGBToBayerRow_SSSE3(const uint8* src_argb, uint8* dst_bayer, uint32 selector, int pix); -void ARGBToBayerRow_Any_NEON(const uint8* src_argb, uint8* dst_bayer, + void ARGBToBayerRow_NEON(const uint8* src_argb, uint8* dst_bayer, uint32 selector, int pix); -void ARGBToBayerGGRow_C(const uint8* src_argb, uint8* dst_bayer, - uint32 /* selector */, int pix); -void ARGBToBayerGGRow_SSE2(const uint8* src_argb, uint8* dst_bayer, - uint32 /* selector */, int pix); -void ARGBToBayerGGRow_NEON(const uint8* src_argb, uint8* dst_bayer, - uint32 /* selector */, int pix); -void ARGBToBayerGGRow_Any_SSE2(const uint8* src_argb, uint8* dst_bayer, + void ARGBToBayerRow_Any_SSSE3(const uint8* src_argb, uint8* dst_bayer, + uint32 selector, int pix); + void ARGBToBayerRow_Any_NEON(const uint8* src_argb, uint8* dst_bayer, + uint32 selector, int pix); + void ARGBToBayerGGRow_C(const uint8* src_argb, uint8* dst_bayer, + uint32 /* selector */, int pix); + void ARGBToBayerGGRow_SSE2(const uint8* src_argb, uint8* dst_bayer, uint32 /* selector */, int pix); -void ARGBToBayerGGRow_Any_NEON(const uint8* src_argb, uint8* dst_bayer, + void ARGBToBayerGGRow_NEON(const uint8* src_argb, uint8* dst_bayer, uint32 /* selector */, int pix); + void ARGBToBayerGGRow_Any_SSE2(const uint8* src_argb, uint8* dst_bayer, + uint32 /* selector */, int pix); + void ARGBToBayerGGRow_Any_NEON(const uint8* src_argb, uint8* dst_bayer, + uint32 /* selector */, int pix); -void I422ToYUY2Row_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_yuy2, int width); -void I422ToUYVYRow_C(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_uyvy, int width); -void I422ToYUY2Row_SSE2(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_yuy2, int width); -void I422ToUYVYRow_SSE2(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_uyvy, int width); -void I422ToYUY2Row_Any_SSE2(const uint8* src_y, + void I422ToYUY2Row_C(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_yuy2, int width); + void I422ToUYVYRow_C(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_uyvy, int width); + void I422ToYUY2Row_SSE2(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_yuy2, int width); -void I422ToUYVYRow_Any_SSE2(const uint8* src_y, + void I422ToUYVYRow_SSE2(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_uyvy, int width); -void I422ToYUY2Row_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_yuy2, int width); -void I422ToUYVYRow_NEON(const uint8* src_y, - const uint8* src_u, - const uint8* src_v, - uint8* dst_uyvy, int width); -void I422ToYUY2Row_Any_NEON(const uint8* src_y, + void I422ToYUY2Row_Any_SSE2(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_yuy2, int width); + void I422ToUYVYRow_Any_SSE2(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_uyvy, int width); + void I422ToYUY2Row_NEON(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_yuy2, int width); -void I422ToUYVYRow_Any_NEON(const uint8* src_y, + void I422ToUYVYRow_NEON(const uint8* src_y, const uint8* src_u, const uint8* src_v, uint8* dst_uyvy, int width); + void I422ToYUY2Row_Any_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_yuy2, int width); + void I422ToUYVYRow_Any_NEON(const uint8* src_y, + const uint8* src_u, + const uint8* src_v, + uint8* dst_uyvy, int width); // Effects related row functions. -void ARGBAttenuateRow_C(const uint8* src_argb, uint8* dst_argb, int width); -void ARGBAttenuateRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); -void ARGBAttenuateRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width); -void ARGBAttenuateRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); -void ARGBAttenuateRow_NEON(const uint8* src_argb, uint8* dst_argb, int width); -void ARGBAttenuateRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, - int width); -void ARGBAttenuateRow_Any_SSSE3(const uint8* src_argb, uint8* dst_argb, - int width); -void ARGBAttenuateRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, - int width); -void ARGBAttenuateRow_Any_NEON(const uint8* src_argb, uint8* dst_argb, - int width); + void ARGBAttenuateRow_C(const uint8* src_argb, uint8* dst_argb, int width); + void ARGBAttenuateRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); + void ARGBAttenuateRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width); + void ARGBAttenuateRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); + void ARGBAttenuateRow_NEON(const uint8* src_argb, uint8* dst_argb, int width); + void ARGBAttenuateRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, + int width); + void ARGBAttenuateRow_Any_SSSE3(const uint8* src_argb, uint8* dst_argb, + int width); + void ARGBAttenuateRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, + int width); + void ARGBAttenuateRow_Any_NEON(const uint8* src_argb, uint8* dst_argb, + int width); // Inverse table for unattenuate, shared by C and SSE2. -extern const uint32 fixed_invtbl8[256]; -void ARGBUnattenuateRow_C(const uint8* src_argb, uint8* dst_argb, int width); -void ARGBUnattenuateRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); -void ARGBUnattenuateRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); -void ARGBUnattenuateRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, - int width); -void ARGBUnattenuateRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, - int width); - -void ARGBGrayRow_C(const uint8* src_argb, uint8* dst_argb, int width); -void ARGBGrayRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width); -void ARGBGrayRow_NEON(const uint8* src_argb, uint8* dst_argb, int width); - -void ARGBSepiaRow_C(uint8* dst_argb, int width); -void ARGBSepiaRow_SSSE3(uint8* dst_argb, int width); -void ARGBSepiaRow_NEON(uint8* dst_argb, int width); - -void ARGBColorMatrixRow_C(const uint8* src_argb, uint8* dst_argb, - const int8* matrix_argb, int width); -void ARGBColorMatrixRow_SSSE3(const uint8* src_argb, uint8* dst_argb, + extern const uint32 fixed_invtbl8[256]; + void ARGBUnattenuateRow_C(const uint8* src_argb, uint8* dst_argb, int width); + void ARGBUnattenuateRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); + void ARGBUnattenuateRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); + void ARGBUnattenuateRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, + int width); + void ARGBUnattenuateRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, + int width); + + void ARGBGrayRow_C(const uint8* src_argb, uint8* dst_argb, int width); + void ARGBGrayRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width); + void ARGBGrayRow_NEON(const uint8* src_argb, uint8* dst_argb, int width); + + void ARGBSepiaRow_C(uint8* dst_argb, int width); + void ARGBSepiaRow_SSSE3(uint8* dst_argb, int width); + void ARGBSepiaRow_NEON(uint8* dst_argb, int width); + + void ARGBColorMatrixRow_C(const uint8* src_argb, uint8* dst_argb, const int8* matrix_argb, int width); -void ARGBColorMatrixRow_NEON(const uint8* src_argb, uint8* dst_argb, - const int8* matrix_argb, int width); - -void ARGBColorTableRow_C(uint8* dst_argb, const uint8* table_argb, int width); -void ARGBColorTableRow_X86(uint8* dst_argb, const uint8* table_argb, int width); - -void RGBColorTableRow_C(uint8* dst_argb, const uint8* table_argb, int width); -void RGBColorTableRow_X86(uint8* dst_argb, const uint8* table_argb, int width); - -void ARGBQuantizeRow_C(uint8* dst_argb, int scale, int interval_size, - int interval_offset, int width); -void ARGBQuantizeRow_SSE2(uint8* dst_argb, int scale, int interval_size, - int interval_offset, int width); -void ARGBQuantizeRow_NEON(uint8* dst_argb, int scale, int interval_size, - int interval_offset, int width); - -void ARGBShadeRow_C(const uint8* src_argb, uint8* dst_argb, int width, - uint32 value); -void ARGBShadeRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width, - uint32 value); -void ARGBShadeRow_NEON(const uint8* src_argb, uint8* dst_argb, int width, - uint32 value); + void ARGBColorMatrixRow_SSSE3(const uint8* src_argb, uint8* dst_argb, + const int8* matrix_argb, int width); + void ARGBColorMatrixRow_NEON(const uint8* src_argb, uint8* dst_argb, + const int8* matrix_argb, int width); + + void ARGBColorTableRow_C(uint8* dst_argb, const uint8* table_argb, int width); + void ARGBColorTableRow_X86(uint8* dst_argb, const uint8* table_argb, int width); + + void RGBColorTableRow_C(uint8* dst_argb, const uint8* table_argb, int width); + void RGBColorTableRow_X86(uint8* dst_argb, const uint8* table_argb, int width); + + void ARGBQuantizeRow_C(uint8* dst_argb, int scale, int interval_size, + int interval_offset, int width); + void ARGBQuantizeRow_SSE2(uint8* dst_argb, int scale, int interval_size, + int interval_offset, int width); + void ARGBQuantizeRow_NEON(uint8* dst_argb, int scale, int interval_size, + int interval_offset, int width); + + void ARGBShadeRow_C(const uint8* src_argb, uint8* dst_argb, int width, + uint32 value); + void ARGBShadeRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width, + uint32 value); + void ARGBShadeRow_NEON(const uint8* src_argb, uint8* dst_argb, int width, + uint32 value); // Used for blur. -void CumulativeSumToAverageRow_SSE2(const int32* topleft, const int32* botleft, - int width, int area, uint8* dst, int count); -void ComputeCumulativeSumRow_SSE2(const uint8* row, int32* cumsum, - const int32* previous_cumsum, int width); - -void CumulativeSumToAverageRow_C(const int32* topleft, const int32* botleft, - int width, int area, uint8* dst, int count); -void ComputeCumulativeSumRow_C(const uint8* row, int32* cumsum, - const int32* previous_cumsum, int width); - -LIBYUV_API -void ARGBAffineRow_C(const uint8* src_argb, int src_argb_stride, - uint8* dst_argb, const float* uv_dudv, int width); -LIBYUV_API -void ARGBAffineRow_SSE2(const uint8* src_argb, int src_argb_stride, - uint8* dst_argb, const float* uv_dudv, int width); + void CumulativeSumToAverageRow_SSE2(const int32* topleft, const int32* botleft, + int width, int area, uint8* dst, int count); + void ComputeCumulativeSumRow_SSE2(const uint8* row, int32* cumsum, + const int32* previous_cumsum, int width); + + void CumulativeSumToAverageRow_C(const int32* topleft, const int32* botleft, + int width, int area, uint8* dst, int count); + void ComputeCumulativeSumRow_C(const uint8* row, int32* cumsum, + const int32* previous_cumsum, int width); + + LIBYUV_API + void ARGBAffineRow_C(const uint8* src_argb, int src_argb_stride, + uint8* dst_argb, const float* uv_dudv, int width); + LIBYUV_API + void ARGBAffineRow_SSE2(const uint8* src_argb, int src_argb_stride, + uint8* dst_argb, const float* uv_dudv, int width); // Used for I420Scale, ARGBScale, and ARGBInterpolate. -void InterpolateRow_C(uint8* dst_ptr, const uint8* src_ptr, - ptrdiff_t src_stride_ptr, - int width, int source_y_fraction); -void InterpolateRow_SSE2(uint8* dst_ptr, const uint8* src_ptr, - ptrdiff_t src_stride_ptr, int width, - int source_y_fraction); -void InterpolateRow_SSSE3(uint8* dst_ptr, const uint8* src_ptr, - ptrdiff_t src_stride_ptr, int width, - int source_y_fraction); -void InterpolateRow_AVX2(uint8* dst_ptr, const uint8* src_ptr, - ptrdiff_t src_stride_ptr, int width, - int source_y_fraction); -void InterpolateRow_NEON(uint8* dst_ptr, const uint8* src_ptr, - ptrdiff_t src_stride_ptr, int width, - int source_y_fraction); -void InterpolateRows_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr, - ptrdiff_t src_stride_ptr, int width, - int source_y_fraction); -void InterpolateRow_Any_NEON(uint8* dst_ptr, const uint8* src_ptr, - ptrdiff_t src_stride_ptr, int width, - int source_y_fraction); -void InterpolateRow_Any_SSE2(uint8* dst_ptr, const uint8* src_ptr, + void InterpolateRow_C(uint8* dst_ptr, const uint8* src_ptr, + ptrdiff_t src_stride_ptr, + int width, int source_y_fraction); + void InterpolateRow_SSE2(uint8* dst_ptr, const uint8* src_ptr, ptrdiff_t src_stride_ptr, int width, int source_y_fraction); -void InterpolateRow_Any_SSSE3(uint8* dst_ptr, const uint8* src_ptr, + void InterpolateRow_SSSE3(uint8* dst_ptr, const uint8* src_ptr, ptrdiff_t src_stride_ptr, int width, int source_y_fraction); -void InterpolateRow_Any_AVX2(uint8* dst_ptr, const uint8* src_ptr, + void InterpolateRow_AVX2(uint8* dst_ptr, const uint8* src_ptr, ptrdiff_t src_stride_ptr, int width, int source_y_fraction); -void InterpolateRows_Any_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr, + void InterpolateRow_NEON(uint8* dst_ptr, const uint8* src_ptr, + ptrdiff_t src_stride_ptr, int width, + int source_y_fraction); + void InterpolateRows_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr, ptrdiff_t src_stride_ptr, int width, int source_y_fraction); - -void InterpolateRow_16_C(uint16* dst_ptr, const uint16* src_ptr, - ptrdiff_t src_stride_ptr, - int width, int source_y_fraction); + void InterpolateRow_Any_NEON(uint8* dst_ptr, const uint8* src_ptr, + ptrdiff_t src_stride_ptr, int width, + int source_y_fraction); + void InterpolateRow_Any_SSE2(uint8* dst_ptr, const uint8* src_ptr, + ptrdiff_t src_stride_ptr, int width, + int source_y_fraction); + void InterpolateRow_Any_SSSE3(uint8* dst_ptr, const uint8* src_ptr, + ptrdiff_t src_stride_ptr, int width, + int source_y_fraction); + void InterpolateRow_Any_AVX2(uint8* dst_ptr, const uint8* src_ptr, + ptrdiff_t src_stride_ptr, int width, + int source_y_fraction); + void InterpolateRows_Any_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr, + ptrdiff_t src_stride_ptr, int width, + int source_y_fraction); + + void InterpolateRow_16_C(uint16* dst_ptr, const uint16* src_ptr, + ptrdiff_t src_stride_ptr, + int width, int source_y_fraction); // Sobel images. -void SobelXRow_C(const uint8* src_y0, const uint8* src_y1, const uint8* src_y2, - uint8* dst_sobelx, int width); -void SobelXRow_SSE2(const uint8* src_y0, const uint8* src_y1, - const uint8* src_y2, uint8* dst_sobelx, int width); -void SobelXRow_NEON(const uint8* src_y0, const uint8* src_y1, - const uint8* src_y2, uint8* dst_sobelx, int width); -void SobelYRow_C(const uint8* src_y0, const uint8* src_y1, - uint8* dst_sobely, int width); -void SobelYRow_SSE2(const uint8* src_y0, const uint8* src_y1, - uint8* dst_sobely, int width); -void SobelYRow_NEON(const uint8* src_y0, const uint8* src_y1, - uint8* dst_sobely, int width); -void SobelRow_C(const uint8* src_sobelx, const uint8* src_sobely, - uint8* dst_argb, int width); -void SobelRow_SSE2(const uint8* src_sobelx, const uint8* src_sobely, - uint8* dst_argb, int width); -void SobelRow_NEON(const uint8* src_sobelx, const uint8* src_sobely, - uint8* dst_argb, int width); -void SobelToPlaneRow_C(const uint8* src_sobelx, const uint8* src_sobely, - uint8* dst_y, int width); -void SobelToPlaneRow_SSE2(const uint8* src_sobelx, const uint8* src_sobely, - uint8* dst_y, int width); -void SobelToPlaneRow_NEON(const uint8* src_sobelx, const uint8* src_sobely, - uint8* dst_y, int width); -void SobelXYRow_C(const uint8* src_sobelx, const uint8* src_sobely, - uint8* dst_argb, int width); -void SobelXYRow_SSE2(const uint8* src_sobelx, const uint8* src_sobely, - uint8* dst_argb, int width); -void SobelXYRow_NEON(const uint8* src_sobelx, const uint8* src_sobely, - uint8* dst_argb, int width); - -void ARGBPolynomialRow_C(const uint8* src_argb, - uint8* dst_argb, const float* poly, - int width); -void ARGBPolynomialRow_SSE2(const uint8* src_argb, - uint8* dst_argb, const float* poly, - int width); -void ARGBPolynomialRow_AVX2(const uint8* src_argb, - uint8* dst_argb, const float* poly, - int width); + void SobelXRow_C(const uint8* src_y0, const uint8* src_y1, const uint8* src_y2, + uint8* dst_sobelx, int width); + void SobelXRow_SSE2(const uint8* src_y0, const uint8* src_y1, + const uint8* src_y2, uint8* dst_sobelx, int width); + void SobelXRow_NEON(const uint8* src_y0, const uint8* src_y1, + const uint8* src_y2, uint8* dst_sobelx, int width); + void SobelYRow_C(const uint8* src_y0, const uint8* src_y1, + uint8* dst_sobely, int width); + void SobelYRow_SSE2(const uint8* src_y0, const uint8* src_y1, + uint8* dst_sobely, int width); + void SobelYRow_NEON(const uint8* src_y0, const uint8* src_y1, + uint8* dst_sobely, int width); + void SobelRow_C(const uint8* src_sobelx, const uint8* src_sobely, + uint8* dst_argb, int width); + void SobelRow_SSE2(const uint8* src_sobelx, const uint8* src_sobely, + uint8* dst_argb, int width); + void SobelRow_NEON(const uint8* src_sobelx, const uint8* src_sobely, + uint8* dst_argb, int width); + void SobelToPlaneRow_C(const uint8* src_sobelx, const uint8* src_sobely, + uint8* dst_y, int width); + void SobelToPlaneRow_SSE2(const uint8* src_sobelx, const uint8* src_sobely, + uint8* dst_y, int width); + void SobelToPlaneRow_NEON(const uint8* src_sobelx, const uint8* src_sobely, + uint8* dst_y, int width); + void SobelXYRow_C(const uint8* src_sobelx, const uint8* src_sobely, + uint8* dst_argb, int width); + void SobelXYRow_SSE2(const uint8* src_sobelx, const uint8* src_sobely, + uint8* dst_argb, int width); + void SobelXYRow_NEON(const uint8* src_sobelx, const uint8* src_sobely, + uint8* dst_argb, int width); + + void ARGBPolynomialRow_C(const uint8* src_argb, + uint8* dst_argb, const float* poly, + int width); + void ARGBPolynomialRow_SSE2(const uint8* src_argb, + uint8* dst_argb, const float* poly, + int width); + void ARGBPolynomialRow_AVX2(const uint8* src_argb, + uint8* dst_argb, const float* poly, + int width); -void ARGBLumaColorTableRow_C(const uint8* src_argb, uint8* dst_argb, int width, - const uint8* luma, uint32 lumacoeff); -void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, - int width, + void ARGBLumaColorTableRow_C(const uint8* src_argb, uint8* dst_argb, int width, const uint8* luma, uint32 lumacoeff); + void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, + int width, + const uint8* luma, uint32 lumacoeff); #ifdef __cplusplus } // extern "C" diff --git a/thirdparties/iphone/include/libyuv/libyuv/scale.h b/thirdparties/iphone/include/libyuv/libyuv/scale.h index 102158d..b096962 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/scale.h +++ b/thirdparties/iphone/include/libyuv/libyuv/scale.h @@ -14,17 +14,19 @@ #include "libyuv/basic_types.h" #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif // Supported filtering. typedef enum FilterMode { - kFilterNone = 0, // Point sample; Fastest. - kFilterLinear = 1, // Filter horizontally only. - kFilterBilinear = 2, // Faster than box, but lower quality scaling down. - kFilterBox = 3 // Highest quality. -} FilterModeEnum; + kFilterNone = 0, // Point sample; Fastest. + kFilterLinear = 1, // Filter horizontally only. + kFilterBilinear = 2, // Faster than box, but lower quality scaling down. + kFilterBox = 3 // Highest quality. +} +FilterModeEnum; // Scale a YUV plane. LIBYUV_API @@ -75,24 +77,24 @@ int I420Scale_16(const uint16* src_y, int src_stride_y, #ifdef __cplusplus // Legacy API. Deprecated. -LIBYUV_API -int Scale(const uint8* src_y, const uint8* src_u, const uint8* src_v, - int src_stride_y, int src_stride_u, int src_stride_v, - int src_width, int src_height, - uint8* dst_y, uint8* dst_u, uint8* dst_v, - int dst_stride_y, int dst_stride_u, int dst_stride_v, - int dst_width, int dst_height, - LIBYUV_BOOL interpolate); + LIBYUV_API + int Scale(const uint8* src_y, const uint8* src_u, const uint8* src_v, + int src_stride_y, int src_stride_u, int src_stride_v, + int src_width, int src_height, + uint8* dst_y, uint8* dst_u, uint8* dst_v, + int dst_stride_y, int dst_stride_u, int dst_stride_v, + int dst_width, int dst_height, + LIBYUV_BOOL interpolate); // Legacy API. Deprecated. -LIBYUV_API -int ScaleOffset(const uint8* src_i420, int src_width, int src_height, - uint8* dst_i420, int dst_width, int dst_height, int dst_yoffset, - LIBYUV_BOOL interpolate); + LIBYUV_API + int ScaleOffset(const uint8* src_i420, int src_width, int src_height, + uint8* dst_i420, int dst_width, int dst_height, int dst_yoffset, + LIBYUV_BOOL interpolate); // For testing, allow disabling of specialized scalers. -LIBYUV_API -void SetUseReferenceImpl(LIBYUV_BOOL use); + LIBYUV_API + void SetUseReferenceImpl(LIBYUV_BOOL use); #endif // __cplusplus #ifdef __cplusplus diff --git a/thirdparties/iphone/include/libyuv/libyuv/scale_argb.h b/thirdparties/iphone/include/libyuv/libyuv/scale_argb.h index 0c9b362..9058a78 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/scale_argb.h +++ b/thirdparties/iphone/include/libyuv/libyuv/scale_argb.h @@ -15,7 +15,8 @@ #include "libyuv/scale.h" // For FilterMode #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif diff --git a/thirdparties/iphone/include/libyuv/libyuv/scale_row.h b/thirdparties/iphone/include/libyuv/libyuv/scale_row.h index 27aa04b..9fad7f3 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/scale_row.h +++ b/thirdparties/iphone/include/libyuv/libyuv/scale_row.h @@ -14,7 +14,8 @@ #include "libyuv/basic_types.h" #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif diff --git a/thirdparties/iphone/include/libyuv/libyuv/video_common.h b/thirdparties/iphone/include/libyuv/libyuv/video_common.h index 91acc2f..849c3fc 100755 --- a/thirdparties/iphone/include/libyuv/libyuv/video_common.h +++ b/thirdparties/iphone/include/libyuv/libyuv/video_common.h @@ -16,7 +16,8 @@ #include "libyuv/basic_types.h" #ifdef __cplusplus -namespace libyuv { +namespace libyuv +{ extern "C" { #endif @@ -48,131 +49,131 @@ extern "C" { // Primary formats should convert in 1 efficient step. // Secondary formats are converted in 2 steps. // Auxilliary formats call primary converters. -enum FourCC { - // 9 Primary YUV formats: 5 planar, 2 biplanar, 2 packed. - FOURCC_I420 = FOURCC('I', '4', '2', '0'), - FOURCC_I422 = FOURCC('I', '4', '2', '2'), - FOURCC_I444 = FOURCC('I', '4', '4', '4'), - FOURCC_I411 = FOURCC('I', '4', '1', '1'), - FOURCC_I400 = FOURCC('I', '4', '0', '0'), - FOURCC_NV21 = FOURCC('N', 'V', '2', '1'), - FOURCC_NV12 = FOURCC('N', 'V', '1', '2'), - FOURCC_YUY2 = FOURCC('Y', 'U', 'Y', '2'), - FOURCC_UYVY = FOURCC('U', 'Y', 'V', 'Y'), - - // 2 Secondary YUV formats: row biplanar. - FOURCC_M420 = FOURCC('M', '4', '2', '0'), - FOURCC_Q420 = FOURCC('Q', '4', '2', '0'), - - // 9 Primary RGB formats: 4 32 bpp, 2 24 bpp, 3 16 bpp. - FOURCC_ARGB = FOURCC('A', 'R', 'G', 'B'), - FOURCC_BGRA = FOURCC('B', 'G', 'R', 'A'), - FOURCC_ABGR = FOURCC('A', 'B', 'G', 'R'), - FOURCC_24BG = FOURCC('2', '4', 'B', 'G'), - FOURCC_RAW = FOURCC('r', 'a', 'w', ' '), - FOURCC_RGBA = FOURCC('R', 'G', 'B', 'A'), - FOURCC_RGBP = FOURCC('R', 'G', 'B', 'P'), // rgb565 LE. - FOURCC_RGBO = FOURCC('R', 'G', 'B', 'O'), // argb1555 LE. - FOURCC_R444 = FOURCC('R', '4', '4', '4'), // argb4444 LE. - - // 4 Secondary RGB formats: 4 Bayer Patterns. - FOURCC_RGGB = FOURCC('R', 'G', 'G', 'B'), - FOURCC_BGGR = FOURCC('B', 'G', 'G', 'R'), - FOURCC_GRBG = FOURCC('G', 'R', 'B', 'G'), - FOURCC_GBRG = FOURCC('G', 'B', 'R', 'G'), - - // 1 Primary Compressed YUV format. - FOURCC_MJPG = FOURCC('M', 'J', 'P', 'G'), - - // 5 Auxiliary YUV variations: 3 with U and V planes are swapped, 1 Alias. - FOURCC_YV12 = FOURCC('Y', 'V', '1', '2'), - FOURCC_YV16 = FOURCC('Y', 'V', '1', '6'), - FOURCC_YV24 = FOURCC('Y', 'V', '2', '4'), - FOURCC_YU12 = FOURCC('Y', 'U', '1', '2'), // Linux version of I420. - FOURCC_J420 = FOURCC('J', '4', '2', '0'), - FOURCC_J400 = FOURCC('J', '4', '0', '0'), - - // 14 Auxiliary aliases. CanonicalFourCC() maps these to canonical fourcc. - FOURCC_IYUV = FOURCC('I', 'Y', 'U', 'V'), // Alias for I420. - FOURCC_YU16 = FOURCC('Y', 'U', '1', '6'), // Alias for I422. - FOURCC_YU24 = FOURCC('Y', 'U', '2', '4'), // Alias for I444. - FOURCC_YUYV = FOURCC('Y', 'U', 'Y', 'V'), // Alias for YUY2. - FOURCC_YUVS = FOURCC('y', 'u', 'v', 's'), // Alias for YUY2 on Mac. - FOURCC_HDYC = FOURCC('H', 'D', 'Y', 'C'), // Alias for UYVY. - FOURCC_2VUY = FOURCC('2', 'v', 'u', 'y'), // Alias for UYVY on Mac. - FOURCC_JPEG = FOURCC('J', 'P', 'E', 'G'), // Alias for MJPG. - FOURCC_DMB1 = FOURCC('d', 'm', 'b', '1'), // Alias for MJPG on Mac. - FOURCC_BA81 = FOURCC('B', 'A', '8', '1'), // Alias for BGGR. - FOURCC_RGB3 = FOURCC('R', 'G', 'B', '3'), // Alias for RAW. - FOURCC_BGR3 = FOURCC('B', 'G', 'R', '3'), // Alias for 24BG. - FOURCC_CM32 = FOURCC(0, 0, 0, 32), // Alias for BGRA kCMPixelFormat_32ARGB - FOURCC_CM24 = FOURCC(0, 0, 0, 24), // Alias for RAW kCMPixelFormat_24RGB - FOURCC_L555 = FOURCC('L', '5', '5', '5'), // Alias for RGBO. - FOURCC_L565 = FOURCC('L', '5', '6', '5'), // Alias for RGBP. - FOURCC_5551 = FOURCC('5', '5', '5', '1'), // Alias for RGBO. - - // 1 Auxiliary compressed YUV format set aside for capturer. - FOURCC_H264 = FOURCC('H', '2', '6', '4'), - - // Match any fourcc. - FOURCC_ANY = -1, -}; - -enum FourCCBpp { - // Canonical fourcc codes used in our code. - FOURCC_BPP_I420 = 12, - FOURCC_BPP_I422 = 16, - FOURCC_BPP_I444 = 24, - FOURCC_BPP_I411 = 12, - FOURCC_BPP_I400 = 8, - FOURCC_BPP_NV21 = 12, - FOURCC_BPP_NV12 = 12, - FOURCC_BPP_YUY2 = 16, - FOURCC_BPP_UYVY = 16, - FOURCC_BPP_M420 = 12, - FOURCC_BPP_Q420 = 12, - FOURCC_BPP_ARGB = 32, - FOURCC_BPP_BGRA = 32, - FOURCC_BPP_ABGR = 32, - FOURCC_BPP_RGBA = 32, - FOURCC_BPP_24BG = 24, - FOURCC_BPP_RAW = 24, - FOURCC_BPP_RGBP = 16, - FOURCC_BPP_RGBO = 16, - FOURCC_BPP_R444 = 16, - FOURCC_BPP_RGGB = 8, - FOURCC_BPP_BGGR = 8, - FOURCC_BPP_GRBG = 8, - FOURCC_BPP_GBRG = 8, - FOURCC_BPP_YV12 = 12, - FOURCC_BPP_YV16 = 16, - FOURCC_BPP_YV24 = 24, - FOURCC_BPP_YU12 = 12, - FOURCC_BPP_J420 = 12, - FOURCC_BPP_J400 = 8, - FOURCC_BPP_MJPG = 0, // 0 means unknown. - FOURCC_BPP_H264 = 0, - FOURCC_BPP_IYUV = 12, - FOURCC_BPP_YU16 = 16, - FOURCC_BPP_YU24 = 24, - FOURCC_BPP_YUYV = 16, - FOURCC_BPP_YUVS = 16, - FOURCC_BPP_HDYC = 16, - FOURCC_BPP_2VUY = 16, - FOURCC_BPP_JPEG = 1, - FOURCC_BPP_DMB1 = 1, - FOURCC_BPP_BA81 = 8, - FOURCC_BPP_RGB3 = 24, - FOURCC_BPP_BGR3 = 24, - FOURCC_BPP_CM32 = 32, - FOURCC_BPP_CM24 = 24, - - // Match any fourcc. - FOURCC_BPP_ANY = 0, // 0 means unknown. -}; + enum FourCC { + // 9 Primary YUV formats: 5 planar, 2 biplanar, 2 packed. + FOURCC_I420 = FOURCC('I', '4', '2', '0'), + FOURCC_I422 = FOURCC('I', '4', '2', '2'), + FOURCC_I444 = FOURCC('I', '4', '4', '4'), + FOURCC_I411 = FOURCC('I', '4', '1', '1'), + FOURCC_I400 = FOURCC('I', '4', '0', '0'), + FOURCC_NV21 = FOURCC('N', 'V', '2', '1'), + FOURCC_NV12 = FOURCC('N', 'V', '1', '2'), + FOURCC_YUY2 = FOURCC('Y', 'U', 'Y', '2'), + FOURCC_UYVY = FOURCC('U', 'Y', 'V', 'Y'), + + // 2 Secondary YUV formats: row biplanar. + FOURCC_M420 = FOURCC('M', '4', '2', '0'), + FOURCC_Q420 = FOURCC('Q', '4', '2', '0'), + + // 9 Primary RGB formats: 4 32 bpp, 2 24 bpp, 3 16 bpp. + FOURCC_ARGB = FOURCC('A', 'R', 'G', 'B'), + FOURCC_BGRA = FOURCC('B', 'G', 'R', 'A'), + FOURCC_ABGR = FOURCC('A', 'B', 'G', 'R'), + FOURCC_24BG = FOURCC('2', '4', 'B', 'G'), + FOURCC_RAW = FOURCC('r', 'a', 'w', ' '), + FOURCC_RGBA = FOURCC('R', 'G', 'B', 'A'), + FOURCC_RGBP = FOURCC('R', 'G', 'B', 'P'), // rgb565 LE. + FOURCC_RGBO = FOURCC('R', 'G', 'B', 'O'), // argb1555 LE. + FOURCC_R444 = FOURCC('R', '4', '4', '4'), // argb4444 LE. + + // 4 Secondary RGB formats: 4 Bayer Patterns. + FOURCC_RGGB = FOURCC('R', 'G', 'G', 'B'), + FOURCC_BGGR = FOURCC('B', 'G', 'G', 'R'), + FOURCC_GRBG = FOURCC('G', 'R', 'B', 'G'), + FOURCC_GBRG = FOURCC('G', 'B', 'R', 'G'), + + // 1 Primary Compressed YUV format. + FOURCC_MJPG = FOURCC('M', 'J', 'P', 'G'), + + // 5 Auxiliary YUV variations: 3 with U and V planes are swapped, 1 Alias. + FOURCC_YV12 = FOURCC('Y', 'V', '1', '2'), + FOURCC_YV16 = FOURCC('Y', 'V', '1', '6'), + FOURCC_YV24 = FOURCC('Y', 'V', '2', '4'), + FOURCC_YU12 = FOURCC('Y', 'U', '1', '2'), // Linux version of I420. + FOURCC_J420 = FOURCC('J', '4', '2', '0'), + FOURCC_J400 = FOURCC('J', '4', '0', '0'), + + // 14 Auxiliary aliases. CanonicalFourCC() maps these to canonical fourcc. + FOURCC_IYUV = FOURCC('I', 'Y', 'U', 'V'), // Alias for I420. + FOURCC_YU16 = FOURCC('Y', 'U', '1', '6'), // Alias for I422. + FOURCC_YU24 = FOURCC('Y', 'U', '2', '4'), // Alias for I444. + FOURCC_YUYV = FOURCC('Y', 'U', 'Y', 'V'), // Alias for YUY2. + FOURCC_YUVS = FOURCC('y', 'u', 'v', 's'), // Alias for YUY2 on Mac. + FOURCC_HDYC = FOURCC('H', 'D', 'Y', 'C'), // Alias for UYVY. + FOURCC_2VUY = FOURCC('2', 'v', 'u', 'y'), // Alias for UYVY on Mac. + FOURCC_JPEG = FOURCC('J', 'P', 'E', 'G'), // Alias for MJPG. + FOURCC_DMB1 = FOURCC('d', 'm', 'b', '1'), // Alias for MJPG on Mac. + FOURCC_BA81 = FOURCC('B', 'A', '8', '1'), // Alias for BGGR. + FOURCC_RGB3 = FOURCC('R', 'G', 'B', '3'), // Alias for RAW. + FOURCC_BGR3 = FOURCC('B', 'G', 'R', '3'), // Alias for 24BG. + FOURCC_CM32 = FOURCC(0, 0, 0, 32), // Alias for BGRA kCMPixelFormat_32ARGB + FOURCC_CM24 = FOURCC(0, 0, 0, 24), // Alias for RAW kCMPixelFormat_24RGB + FOURCC_L555 = FOURCC('L', '5', '5', '5'), // Alias for RGBO. + FOURCC_L565 = FOURCC('L', '5', '6', '5'), // Alias for RGBP. + FOURCC_5551 = FOURCC('5', '5', '5', '1'), // Alias for RGBO. + + // 1 Auxiliary compressed YUV format set aside for capturer. + FOURCC_H264 = FOURCC('H', '2', '6', '4'), + + // Match any fourcc. + FOURCC_ANY = -1, + }; + + enum FourCCBpp { + // Canonical fourcc codes used in our code. + FOURCC_BPP_I420 = 12, + FOURCC_BPP_I422 = 16, + FOURCC_BPP_I444 = 24, + FOURCC_BPP_I411 = 12, + FOURCC_BPP_I400 = 8, + FOURCC_BPP_NV21 = 12, + FOURCC_BPP_NV12 = 12, + FOURCC_BPP_YUY2 = 16, + FOURCC_BPP_UYVY = 16, + FOURCC_BPP_M420 = 12, + FOURCC_BPP_Q420 = 12, + FOURCC_BPP_ARGB = 32, + FOURCC_BPP_BGRA = 32, + FOURCC_BPP_ABGR = 32, + FOURCC_BPP_RGBA = 32, + FOURCC_BPP_24BG = 24, + FOURCC_BPP_RAW = 24, + FOURCC_BPP_RGBP = 16, + FOURCC_BPP_RGBO = 16, + FOURCC_BPP_R444 = 16, + FOURCC_BPP_RGGB = 8, + FOURCC_BPP_BGGR = 8, + FOURCC_BPP_GRBG = 8, + FOURCC_BPP_GBRG = 8, + FOURCC_BPP_YV12 = 12, + FOURCC_BPP_YV16 = 16, + FOURCC_BPP_YV24 = 24, + FOURCC_BPP_YU12 = 12, + FOURCC_BPP_J420 = 12, + FOURCC_BPP_J400 = 8, + FOURCC_BPP_MJPG = 0, // 0 means unknown. + FOURCC_BPP_H264 = 0, + FOURCC_BPP_IYUV = 12, + FOURCC_BPP_YU16 = 16, + FOURCC_BPP_YU24 = 24, + FOURCC_BPP_YUYV = 16, + FOURCC_BPP_YUVS = 16, + FOURCC_BPP_HDYC = 16, + FOURCC_BPP_2VUY = 16, + FOURCC_BPP_JPEG = 1, + FOURCC_BPP_DMB1 = 1, + FOURCC_BPP_BA81 = 8, + FOURCC_BPP_RGB3 = 24, + FOURCC_BPP_BGR3 = 24, + FOURCC_BPP_CM32 = 32, + FOURCC_BPP_CM24 = 24, + + // Match any fourcc. + FOURCC_BPP_ANY = 0, // 0 means unknown. + }; // Converts fourcc aliases into canonical ones. -LIBYUV_API uint32 CanonicalFourCC(uint32 fourcc); + LIBYUV_API uint32 CanonicalFourCC(uint32 fourcc); #ifdef __cplusplus } // extern "C" diff --git a/thirdparties/iphone/include/net/_route.h b/thirdparties/iphone/include/net/_route.h index a7e26c8..2d801bc 100755 --- a/thirdparties/iphone/include/net/_route.h +++ b/thirdparties/iphone/include/net/_route.h @@ -2,7 +2,7 @@ * Copyright (c) 2000-2008 Apple Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in @@ -11,10 +11,10 @@ * unlawful or unlicensed copies of an Apple operating system, or to * circumvent, violate, or enable the circumvention or violation of, any * terms of an Apple operating system software license agreement. - * + * * Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -22,7 +22,7 @@ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* @@ -87,17 +87,17 @@ struct route; * retransmission behavior and are included in the routing structure. */ struct rt_metrics { - u_int32_t rmx_locks; /* Kernel must leave these values alone */ - u_int32_t rmx_mtu; /* MTU for this path */ - u_int32_t rmx_hopcount; /* max hops expected */ - int32_t rmx_expire; /* lifetime for route, e.g. redirect */ - u_int32_t rmx_recvpipe; /* inbound delay-bandwidth product */ - u_int32_t rmx_sendpipe; /* outbound delay-bandwidth product */ - u_int32_t rmx_ssthresh; /* outbound gateway buffer limit */ - u_int32_t rmx_rtt; /* estimated round trip time */ - u_int32_t rmx_rttvar; /* estimated rtt variance */ - u_int32_t rmx_pksent; /* packets sent using this route */ - u_int32_t rmx_filler[4]; /* will be used for T/TCP later */ + u_int32_t rmx_locks; /* Kernel must leave these values alone */ + u_int32_t rmx_mtu; /* MTU for this path */ + u_int32_t rmx_hopcount; /* max hops expected */ + int32_t rmx_expire; /* lifetime for route, e.g. redirect */ + u_int32_t rmx_recvpipe; /* inbound delay-bandwidth product */ + u_int32_t rmx_sendpipe; /* outbound delay-bandwidth product */ + u_int32_t rmx_ssthresh; /* outbound gateway buffer limit */ + u_int32_t rmx_rtt; /* estimated round trip time */ + u_int32_t rmx_rttvar; /* estimated rtt variance */ + u_int32_t rmx_pksent; /* packets sent using this route */ + u_int32_t rmx_filler[4]; /* will be used for T/TCP later */ }; /* @@ -134,57 +134,57 @@ struct rt_metrics { #define RTF_PRCLONING 0x10000 /* protocol requires cloning */ #define RTF_WASCLONED 0x20000 /* route generated through cloning */ #define RTF_PROTO3 0x40000 /* protocol specific routing flag */ - /* 0x80000 unused */ +/* 0x80000 unused */ #define RTF_PINNED 0x100000 /* future use */ #define RTF_LOCAL 0x200000 /* route represents a local address */ #define RTF_BROADCAST 0x400000 /* route represents a bcast address */ #define RTF_MULTICAST 0x800000 /* route represents a mcast address */ #define RTF_IFSCOPE 0x1000000 /* has valid interface scope */ #define RTF_CONDEMNED 0x2000000 /* defunct; no longer modifiable */ - /* 0x4000000 and up unassigned */ +/* 0x4000000 and up unassigned */ /* * Routing statistics. */ struct rtstat { - short rts_badredirect; /* bogus redirect calls */ - short rts_dynamic; /* routes created by redirects */ - short rts_newgateway; /* routes modified by redirects */ - short rts_unreach; /* lookups which failed */ - short rts_wildcard; /* lookups satisfied by a wildcard */ + short rts_badredirect; /* bogus redirect calls */ + short rts_dynamic; /* routes created by redirects */ + short rts_newgateway; /* routes modified by redirects */ + short rts_unreach; /* lookups which failed */ + short rts_wildcard; /* lookups satisfied by a wildcard */ }; /* * Structures for routing messages. */ struct rt_msghdr { - u_short rtm_msglen; /* to skip over non-understood messages */ - u_char rtm_version; /* future binary compatibility */ - u_char rtm_type; /* message type */ - u_short rtm_index; /* index for associated ifp */ - int rtm_flags; /* flags, incl. kern & message, e.g. DONE */ - int rtm_addrs; /* bitmask identifying sockaddrs in msg */ - pid_t rtm_pid; /* identify sender */ - int rtm_seq; /* for sender to identify action */ - int rtm_errno; /* why failed */ - int rtm_use; /* from rtentry */ - u_int32_t rtm_inits; /* which metrics we are initializing */ - struct rt_metrics rtm_rmx; /* metrics themselves */ + u_short rtm_msglen; /* to skip over non-understood messages */ + u_char rtm_version; /* future binary compatibility */ + u_char rtm_type; /* message type */ + u_short rtm_index; /* index for associated ifp */ + int rtm_flags; /* flags, incl. kern & message, e.g. DONE */ + int rtm_addrs; /* bitmask identifying sockaddrs in msg */ + pid_t rtm_pid; /* identify sender */ + int rtm_seq; /* for sender to identify action */ + int rtm_errno; /* why failed */ + int rtm_use; /* from rtentry */ + u_int32_t rtm_inits; /* which metrics we are initializing */ + struct rt_metrics rtm_rmx; /* metrics themselves */ }; struct rt_msghdr2 { - u_short rtm_msglen; /* to skip over non-understood messages */ - u_char rtm_version; /* future binary compatibility */ - u_char rtm_type; /* message type */ - u_short rtm_index; /* index for associated ifp */ - int rtm_flags; /* flags, incl. kern & message, e.g. DONE */ - int rtm_addrs; /* bitmask identifying sockaddrs in msg */ - int32_t rtm_refcnt; /* reference count */ - int rtm_parentflags; /* flags of the parent route */ - int rtm_reserved; /* reserved field set to 0 */ - int rtm_use; /* from rtentry */ - u_int32_t rtm_inits; /* which metrics we are initializing */ - struct rt_metrics rtm_rmx; /* metrics themselves */ + u_short rtm_msglen; /* to skip over non-understood messages */ + u_char rtm_version; /* future binary compatibility */ + u_char rtm_type; /* message type */ + u_short rtm_index; /* index for associated ifp */ + int rtm_flags; /* flags, incl. kern & message, e.g. DONE */ + int rtm_addrs; /* bitmask identifying sockaddrs in msg */ + int32_t rtm_refcnt; /* reference count */ + int rtm_parentflags; /* flags of the parent route */ + int rtm_reserved; /* reserved field set to 0 */ + int rtm_use; /* from rtentry */ + u_int32_t rtm_inits; /* which metrics we are initializing */ + struct rt_metrics rtm_rmx; /* metrics themselves */ }; @@ -251,17 +251,17 @@ struct rt_msghdr2 { #define RTAX_MAX 8 /* size of array to allocate */ struct rt_addrinfo { - int rti_addrs; - struct sockaddr *rti_info[RTAX_MAX]; + int rti_addrs; + struct sockaddr *rti_info[RTAX_MAX]; }; struct route_cb { - int ip_count; - int ip6_count; - int ipx_count; - int ns_count; - int iso_count; - int any_count; + int ip_count; + int ip6_count; + int ipx_count; + int ns_count; + int iso_count; + int any_count; }; diff --git a/thirdparties/iphone/include/opencore-amrnb/interf_enc.h b/thirdparties/iphone/include/opencore-amrnb/interf_enc.h index b89b0c7..42b0df4 100755 --- a/thirdparties/iphone/include/opencore-amrnb/interf_enc.h +++ b/thirdparties/iphone/include/opencore-amrnb/interf_enc.h @@ -26,16 +26,16 @@ extern "C" { #ifndef AMRNB_WRAPPER_INTERNAL /* Copied from enc/src/gsmamr_enc.h */ enum Mode { - MR475 = 0,/* 4.75 kbps */ - MR515, /* 5.15 kbps */ - MR59, /* 5.90 kbps */ - MR67, /* 6.70 kbps */ - MR74, /* 7.40 kbps */ - MR795, /* 7.95 kbps */ - MR102, /* 10.2 kbps */ - MR122, /* 12.2 kbps */ - MRDTX, /* DTX */ - N_MODES /* Not Used */ + MR475 = 0,/* 4.75 kbps */ + MR515, /* 5.15 kbps */ + MR59, /* 5.90 kbps */ + MR67, /* 6.70 kbps */ + MR74, /* 7.40 kbps */ + MR795, /* 7.95 kbps */ + MR102, /* 10.2 kbps */ + MR122, /* 12.2 kbps */ + MRDTX, /* DTX */ + N_MODES /* Not Used */ }; #endif diff --git a/thirdparties/iphone/include/speex/speex.h b/thirdparties/iphone/include/speex/speex.h index 82ba016..0eb560e 100755 --- a/thirdparties/iphone/include/speex/speex.h +++ b/thirdparties/iphone/include/speex/speex.h @@ -7,18 +7,18 @@ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + - Neither the name of the Xiph.org Foundation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -245,70 +245,70 @@ typedef int (*decoder_ctl_func)(void *state, int request, void *ptr); /** Query function for a mode */ typedef int (*mode_query_func)(const void *mode, int request, void *ptr); -/** Struct defining a Speex mode */ +/** Struct defining a Speex mode */ typedef struct SpeexMode { - /** Pointer to the low-level mode data */ - const void *mode; + /** Pointer to the low-level mode data */ + const void *mode; + + /** Pointer to the mode query function */ + mode_query_func query; - /** Pointer to the mode query function */ - mode_query_func query; - - /** The name of the mode (you should not rely on this to identify the mode)*/ - const char *modeName; + /** The name of the mode (you should not rely on this to identify the mode)*/ + const char *modeName; - /**ID of the mode*/ - int modeID; + /**ID of the mode*/ + int modeID; - /**Version number of the bitstream (incremented every time we break - bitstream compatibility*/ - int bitstream_version; + /**Version number of the bitstream (incremented every time we break + bitstream compatibility*/ + int bitstream_version; - /** Pointer to encoder initialization function */ - encoder_init_func enc_init; + /** Pointer to encoder initialization function */ + encoder_init_func enc_init; - /** Pointer to encoder destruction function */ - encoder_destroy_func enc_destroy; + /** Pointer to encoder destruction function */ + encoder_destroy_func enc_destroy; - /** Pointer to frame encoding function */ - encode_func enc; + /** Pointer to frame encoding function */ + encode_func enc; - /** Pointer to decoder initialization function */ - decoder_init_func dec_init; + /** Pointer to decoder initialization function */ + decoder_init_func dec_init; - /** Pointer to decoder destruction function */ - decoder_destroy_func dec_destroy; + /** Pointer to decoder destruction function */ + decoder_destroy_func dec_destroy; - /** Pointer to frame decoding function */ - decode_func dec; + /** Pointer to frame decoding function */ + decode_func dec; - /** ioctl-like requests for encoder */ - encoder_ctl_func enc_ctl; + /** ioctl-like requests for encoder */ + encoder_ctl_func enc_ctl; - /** ioctl-like requests for decoder */ - decoder_ctl_func dec_ctl; + /** ioctl-like requests for decoder */ + decoder_ctl_func dec_ctl; } SpeexMode; /** - * Returns a handle to a newly created Speex encoder state structure. For now, - * the "mode" argument can be &nb_mode or &wb_mode . In the future, more modes - * may be added. Note that for now if you have more than one channels to + * Returns a handle to a newly created Speex encoder state structure. For now, + * the "mode" argument can be &nb_mode or &wb_mode . In the future, more modes + * may be added. Note that for now if you have more than one channels to * encode, you need one state per channel. * - * @param mode The mode to use (either speex_nb_mode or speex_wb.mode) + * @param mode The mode to use (either speex_nb_mode or speex_wb.mode) * @return A newly created encoder state or NULL if state allocation fails */ void *speex_encoder_init(const SpeexMode *mode); -/** Frees all resources associated to an existing Speex encoder state. +/** Frees all resources associated to an existing Speex encoder state. * @param state Encoder state to be destroyed */ void speex_encoder_destroy(void *state); /** Uses an existing encoder state to encode one frame of speech pointed to by "in". The encoded bit-stream is saved in "bits". @param state Encoder state - @param in Frame that will be encoded with a +-2^15 range. This data MAY be - overwritten by the encoder and should be considered uninitialised + @param in Frame that will be encoded with a +-2^15 range. This data MAY be + overwritten by the encoder and should be considered uninitialised after the call. @param bits Bit-stream where the data will be written @return 0 if frame needs not be transmitted (DTX only), 1 otherwise @@ -334,14 +334,14 @@ int speex_encode_int(void *state, spx_int16_t *in, SpeexBits *bits); int speex_encoder_ctl(void *state, int request, void *ptr); -/** Returns a handle to a newly created decoder state structure. For now, +/** Returns a handle to a newly created decoder state structure. For now, * the mode argument can be &nb_mode or &wb_mode . In the future, more modes * may be added. Note that for now if you have more than one channels to * decode, you need one state per channel. * * @param mode Speex mode (one of speex_nb_mode or speex_wb_mode) * @return A newly created decoder state or NULL if state allocation fails - */ + */ void *speex_decoder_init(const SpeexMode *mode); /** Frees all resources associated to an existing decoder state. diff --git a/thirdparties/iphone/include/speex/speex_bits.h b/thirdparties/iphone/include/speex/speex_bits.h index a26fb4c..dd3b752 100755 --- a/thirdparties/iphone/include/speex/speex_bits.h +++ b/thirdparties/iphone/include/speex/speex_bits.h @@ -7,18 +7,18 @@ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + - Neither the name of the Xiph.org Foundation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -47,15 +47,15 @@ extern "C" { /** Bit-packing data structure representing (part of) a bit-stream. */ typedef struct SpeexBits { - char *chars; /**< "raw" data */ - int nbBits; /**< Total number of bits stored in the stream*/ - int charPtr; /**< Position of the byte "cursor" */ - int bitPtr; /**< Position of the bit "cursor" within the current char */ - int owner; /**< Does the struct "own" the "raw" buffer (member "chars") */ - int overflow;/**< Set to one if we try to read past the valid data */ - int buf_size;/**< Allocated size for buffer */ - int reserved1; /**< Reserved for future use */ - void *reserved2; /**< Reserved for future use */ + char *chars; /**< "raw" data */ + int nbBits; /**< Total number of bits stored in the stream*/ + int charPtr; /**< Position of the byte "cursor" */ + int bitPtr; /**< Position of the bit "cursor" within the current char */ + int owner; /**< Does the struct "own" the "raw" buffer (member "chars") */ + int overflow;/**< Set to one if we try to read past the valid data */ + int buf_size;/**< Allocated size for buffer */ + int reserved1; /**< Reserved for future use */ + void *reserved2; /**< Reserved for future use */ } SpeexBits; /** Initializes and allocates resources for a SpeexBits struct */ @@ -80,7 +80,7 @@ void speex_bits_rewind(SpeexBits *bits); void speex_bits_read_from(SpeexBits *bits, char *bytes, int len); /** Append bytes to the bit-stream - * + * * @param bits Bit-stream to operate on * @param bytes pointer to the bytes what will be appended * @param len Number of bytes of append @@ -88,7 +88,7 @@ void speex_bits_read_from(SpeexBits *bits, char *bytes, int len); void speex_bits_read_whole_bytes(SpeexBits *bits, char *bytes, int len); /** Write the content of a bit-stream to an area of memory - * + * * @param bits Bit-stream to operate on * @param bytes Memory location where to write the bits * @param max_len Maximum number of bytes to write (i.e. size of the "bytes" buffer) @@ -129,8 +129,8 @@ unsigned int speex_bits_unpack_unsigned(SpeexBits *bits, int nbBits); */ int speex_bits_nbytes(SpeexBits *bits); -/** Same as speex_bits_unpack_unsigned, but without modifying the cursor position - * +/** Same as speex_bits_unpack_unsigned, but without modifying the cursor position + * * @param bits Bit-stream to operate on * @param nbBits Number of bits to look for * @return Value of the bits peeked, interpreted as unsigned @@ -138,14 +138,14 @@ int speex_bits_nbytes(SpeexBits *bits); unsigned int speex_bits_peek_unsigned(SpeexBits *bits, int nbBits); /** Get the value of the next bit in the stream, without modifying the - * "cursor" position - * + * "cursor" position + * * @param bits Bit-stream to operate on * @return Value of the bit peeked (one bit only) */ int speex_bits_peek(SpeexBits *bits); -/** Advances the position of the "bit cursor" in the stream +/** Advances the position of the "bit cursor" in the stream * * @param bits Bit-stream to operate on * @param n Number of bits to advance @@ -159,8 +159,8 @@ void speex_bits_advance(SpeexBits *bits, int n); */ int speex_bits_remaining(SpeexBits *bits); -/** Insert a terminator so that the data can be sent as a packet while auto-detecting - * the number of frames in each packet +/** Insert a terminator so that the data can be sent as a packet while auto-detecting + * the number of frames in each packet * * @param bits Bit-stream to operate on */ diff --git a/thirdparties/iphone/include/speex/speex_buffer.h b/thirdparties/iphone/include/speex/speex_buffer.h index df56f5f..909bd6d 100755 --- a/thirdparties/iphone/include/speex/speex_buffer.h +++ b/thirdparties/iphone/include/speex/speex_buffer.h @@ -1,5 +1,5 @@ /* Copyright (C) 2007 Jean-Marc Valin - + File: speex_buffer.h This is a very simple ring buffer implementation. It is not thread-safe so you need to do your own locking. diff --git a/thirdparties/iphone/include/speex/speex_callbacks.h b/thirdparties/iphone/include/speex/speex_callbacks.h index 6f450b3..27b5649 100755 --- a/thirdparties/iphone/include/speex/speex_callbacks.h +++ b/thirdparties/iphone/include/speex/speex_callbacks.h @@ -7,18 +7,18 @@ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + - Neither the name of the Xiph.org Foundation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -89,11 +89,11 @@ typedef int (*speex_callback_func)(SpeexBits *bits, void *state, void *data); /** Callback information */ typedef struct SpeexCallback { - int callback_id; /**< ID associated to the callback */ - speex_callback_func func; /**< Callback handler function */ - void *data; /**< Data that will be sent to the handler */ - void *reserved1; /**< Reserved for future use */ - int reserved2; /**< Reserved for future use */ + int callback_id; /**< ID associated to the callback */ + speex_callback_func func; /**< Callback handler function */ + void *data; /**< Data that will be sent to the handler */ + void *reserved1; /**< Reserved for future use */ + int reserved2; /**< Reserved for future use */ } SpeexCallback; /** Handle in-band request */ diff --git a/thirdparties/iphone/include/speex/speex_echo.h b/thirdparties/iphone/include/speex/speex_echo.h index 53bcd28..582e1cc 100755 --- a/thirdparties/iphone/include/speex/speex_echo.h +++ b/thirdparties/iphone/include/speex/speex_echo.h @@ -63,7 +63,7 @@ extern "C" { struct SpeexEchoState_; /** @class SpeexEchoState - * This holds the state of the echo canceller. You need one per channel. + * This holds the state of the echo canceller. You need one per channel. */ /** Internal echo canceller state. Should never be accessed directly. */ @@ -85,7 +85,7 @@ SpeexEchoState *speex_echo_state_init(int frame_size, int filter_length); */ SpeexEchoState *speex_echo_state_init_mc(int frame_size, int filter_length, int nb_mic, int nb_speakers); -/** Destroys an echo canceller state +/** Destroys an echo canceller state * @param st Echo canceller state */ void speex_echo_state_destroy(SpeexEchoState *st); @@ -117,7 +117,7 @@ void speex_echo_capture(SpeexEchoState *st, const spx_int16_t *rec, spx_int16_t */ void speex_echo_playback(SpeexEchoState *st, const spx_int16_t *play); -/** Reset the echo canceller to its original state +/** Reset the echo canceller to its original state * @param st Echo canceller state */ void speex_echo_state_reset(SpeexEchoState *st); @@ -139,7 +139,7 @@ typedef struct SpeexDecorrState_ SpeexDecorrState; /** Create a state for the channel decorrelation algorithm - This is useful for multi-channel echo cancellation only + This is useful for multi-channel echo cancellation only * @param rate Sampling rate * @param channels Number of channels (it's a bit pointless if you don't have at least 2) * @param frame_size Size of the frame to process at ones (counting samples *per* channel) @@ -155,7 +155,7 @@ SpeexDecorrState *speex_decorrelate_new(int rate, int channels, int frame_size); */ void speex_decorrelate(SpeexDecorrState *st, const spx_int16_t *in, spx_int16_t *out, int strength); -/** Destroy a Decorrelation state +/** Destroy a Decorrelation state * @param st State to destroy */ void speex_decorrelate_destroy(SpeexDecorrState *st); diff --git a/thirdparties/iphone/include/speex/speex_header.h b/thirdparties/iphone/include/speex/speex_header.h index f85b249..4cc15df 100755 --- a/thirdparties/iphone/include/speex/speex_header.h +++ b/thirdparties/iphone/include/speex/speex_header.h @@ -7,18 +7,18 @@ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + - Neither the name of the Xiph.org Foundation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -57,21 +57,21 @@ struct SpeexMode; /** Speex header info for file-based formats */ typedef struct SpeexHeader { - char speex_string[SPEEX_HEADER_STRING_LENGTH]; /**< Identifies a Speex bit-stream, always set to "Speex " */ - char speex_version[SPEEX_HEADER_VERSION_LENGTH]; /**< Speex version */ - spx_int32_t speex_version_id; /**< Version for Speex (for checking compatibility) */ - spx_int32_t header_size; /**< Total size of the header ( sizeof(SpeexHeader) ) */ - spx_int32_t rate; /**< Sampling rate used */ - spx_int32_t mode; /**< Mode used (0 for narrowband, 1 for wideband) */ - spx_int32_t mode_bitstream_version; /**< Version ID of the bit-stream */ - spx_int32_t nb_channels; /**< Number of channels encoded */ - spx_int32_t bitrate; /**< Bit-rate used */ - spx_int32_t frame_size; /**< Size of frames */ - spx_int32_t vbr; /**< 1 for a VBR encoding, 0 otherwise */ - spx_int32_t frames_per_packet; /**< Number of frames stored per Ogg packet */ - spx_int32_t extra_headers; /**< Number of additional headers after the comments */ - spx_int32_t reserved1; /**< Reserved for future use, must be zero */ - spx_int32_t reserved2; /**< Reserved for future use, must be zero */ + char speex_string[SPEEX_HEADER_STRING_LENGTH]; /**< Identifies a Speex bit-stream, always set to "Speex " */ + char speex_version[SPEEX_HEADER_VERSION_LENGTH]; /**< Speex version */ + spx_int32_t speex_version_id; /**< Version for Speex (for checking compatibility) */ + spx_int32_t header_size; /**< Total size of the header ( sizeof(SpeexHeader) ) */ + spx_int32_t rate; /**< Sampling rate used */ + spx_int32_t mode; /**< Mode used (0 for narrowband, 1 for wideband) */ + spx_int32_t mode_bitstream_version; /**< Version ID of the bit-stream */ + spx_int32_t nb_channels; /**< Number of channels encoded */ + spx_int32_t bitrate; /**< Bit-rate used */ + spx_int32_t frame_size; /**< Size of frames */ + spx_int32_t vbr; /**< 1 for a VBR encoding, 0 otherwise */ + spx_int32_t frames_per_packet; /**< Number of frames stored per Ogg packet */ + spx_int32_t extra_headers; /**< Number of additional headers after the comments */ + spx_int32_t reserved1; /**< Reserved for future use, must be zero */ + spx_int32_t reserved2; /**< Reserved for future use, must be zero */ } SpeexHeader; /** Initializes a SpeexHeader using basic information */ diff --git a/thirdparties/iphone/include/speex/speex_jitter.h b/thirdparties/iphone/include/speex/speex_jitter.h index d68674b..e6f0321 100755 --- a/thirdparties/iphone/include/speex/speex_jitter.h +++ b/thirdparties/iphone/include/speex/speex_jitter.h @@ -7,18 +7,18 @@ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + - Neither the name of the Xiph.org Foundation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -58,12 +58,12 @@ typedef struct _JitterBufferPacket JitterBufferPacket; /** Definition of an incoming packet */ struct _JitterBufferPacket { - char *data; /**< Data bytes contained in the packet */ - spx_uint32_t len; /**< Length of the packet in bytes */ - spx_uint32_t timestamp; /**< Timestamp for the packet */ - spx_uint32_t span; /**< Time covered by the packet (same units as timestamp) */ - spx_uint16_t sequence; /**< RTP Sequence number if available (0 otherwise) */ - spx_uint32_t user_data; /**< Put whatever data you like here (it's ignored by the jitter buffer) */ + char *data; /**< Data bytes contained in the packet */ + spx_uint32_t len; /**< Length of the packet in bytes */ + spx_uint32_t timestamp; /**< Timestamp for the packet */ + spx_uint32_t span; /**< Time covered by the packet (same units as timestamp) */ + spx_uint16_t sequence; /**< RTP Sequence number if available (0 otherwise) */ + spx_uint32_t user_data; /**< Put whatever data you like here (it's ignored by the jitter buffer) */ }; /** Packet has been retrieved */ @@ -89,7 +89,7 @@ struct _JitterBufferPacket { /** Included because of an early misspelling (will remove in next release) */ #define JITTER_BUFFER_GET_AVALIABLE_COUNT 3 -/** Assign a function to destroy unused packet. When setting that, the jitter +/** Assign a function to destroy unused packet. When setting that, the jitter buffer no longer copies packet data. */ #define JITTER_BUFFER_SET_DESTROY_CALLBACK 4 /** */ @@ -104,7 +104,7 @@ struct _JitterBufferPacket { #define JITTER_BUFFER_SET_CONCEALMENT_SIZE 8 #define JITTER_BUFFER_GET_CONCEALMENT_SIZE 9 -/** Absolute max amount of loss that can be tolerated regardless of the delay. Typical loss +/** Absolute max amount of loss that can be tolerated regardless of the delay. Typical loss should be half of that or less. */ #define JITTER_BUFFER_SET_MAX_LATE_RATE 10 #define JITTER_BUFFER_GET_MAX_LATE_RATE 11 @@ -114,59 +114,59 @@ struct _JitterBufferPacket { #define JITTER_BUFFER_GET_LATE_COST 13 -/** Initialises jitter buffer - * - * @param step_size Starting value for the size of concleanment packets and delay +/** Initialises jitter buffer + * + * @param step_size Starting value for the size of concleanment packets and delay adjustment steps. Can be changed at any time using JITTER_BUFFER_SET_DELAY_STEP and JITTER_BUFFER_GET_CONCEALMENT_SIZE. * @return Newly created jitter buffer state */ JitterBuffer *jitter_buffer_init(int step_size); -/** Restores jitter buffer to its original state - * +/** Restores jitter buffer to its original state + * * @param jitter Jitter buffer state */ void jitter_buffer_reset(JitterBuffer *jitter); -/** Destroys jitter buffer - * +/** Destroys jitter buffer + * * @param jitter Jitter buffer state */ void jitter_buffer_destroy(JitterBuffer *jitter); /** Put one packet into the jitter buffer - * + * * @param jitter Jitter buffer state * @param packet Incoming packet */ void jitter_buffer_put(JitterBuffer *jitter, const JitterBufferPacket *packet); /** Get one packet from the jitter buffer - * + * * @param jitter Jitter buffer state * @param packet Returned packet * @param desired_span Number of samples (or units) we wish to get from the buffer (no guarantee) - * @param current_timestamp Timestamp for the returned packet + * @param current_timestamp Timestamp for the returned packet */ int jitter_buffer_get(JitterBuffer *jitter, JitterBufferPacket *packet, spx_int32_t desired_span, spx_int32_t *start_offset); /** Used right after jitter_buffer_get() to obtain another packet that would have the same timestamp. * This is mainly useful for media where a single "frame" can be split into several packets. - * + * * @param jitter Jitter buffer state * @param packet Returned packet */ int jitter_buffer_get_another(JitterBuffer *jitter, JitterBufferPacket *packet); /** Get pointer timestamp of jitter buffer - * + * * @param jitter Jitter buffer state */ int jitter_buffer_get_pointer_timestamp(JitterBuffer *jitter); /** Advance by one tick - * + * * @param jitter Jitter buffer state */ void jitter_buffer_tick(JitterBuffer *jitter); @@ -178,7 +178,7 @@ void jitter_buffer_tick(JitterBuffer *jitter); void jitter_buffer_remaining_span(JitterBuffer *jitter, spx_uint32_t rem); /** Used like the ioctl function to control the jitter buffer parameters - * + * * @param jitter Jitter buffer state * @param request ioctl-type request (one of the JITTER_BUFFER_* macros) * @param ptr Data exchanged to-from function diff --git a/thirdparties/iphone/include/speex/speex_preprocess.h b/thirdparties/iphone/include/speex/speex_preprocess.h index f8eef2c..5cd3710 100755 --- a/thirdparties/iphone/include/speex/speex_preprocess.h +++ b/thirdparties/iphone/include/speex/speex_preprocess.h @@ -2,7 +2,7 @@ Written by Jean-Marc Valin */ /** * @file speex_preprocess.h - * @brief Speex preprocessor. The preprocess can do noise suppression, + * @brief Speex preprocessor. The preprocess can do noise suppression, * residual echo suppression (after using the echo canceller), automatic * gain control (AGC) and voice activity detection (VAD). */ @@ -37,7 +37,7 @@ #ifndef SPEEX_PREPROCESS_H #define SPEEX_PREPROCESS_H /** @defgroup SpeexPreprocessState SpeexPreprocessState: The Speex preprocessor - * This is the Speex preprocessor. The preprocess can do noise suppression, + * This is the Speex preprocessor. The preprocess can do noise suppression, * residual echo suppression (after using the echo canceller), automatic * gain control (AGC) and voice activity detection (VAD). * @{ @@ -48,7 +48,7 @@ #ifdef __cplusplus extern "C" { #endif - + /** State of the preprocessor (one per channel). Should never be accessed directly. */ struct SpeexPreprocessState_; @@ -64,12 +64,12 @@ typedef struct SpeexPreprocessState_ SpeexPreprocessState; */ SpeexPreprocessState *speex_preprocess_state_init(int frame_size, int sampling_rate); -/** Destroys a preprocessor state +/** Destroys a preprocessor state * @param st Preprocessor state to destroy */ void speex_preprocess_state_destroy(SpeexPreprocessState *st); -/** Preprocess a frame +/** Preprocess a frame * @param st Preprocessor state * @param x Audio sample vector (in and out). Must be same size as specified in speex_preprocess_state_init(). * @return Bool value for voice activity (1 for speech, 0 for noise/silence), ONLY if VAD turned on. @@ -85,7 +85,7 @@ int speex_preprocess(SpeexPreprocessState *st, spx_int16_t *x, spx_int32_t *echo */ void speex_preprocess_estimate_update(SpeexPreprocessState *st, spx_int16_t *x); -/** Used like the ioctl function to control the preprocessor parameters +/** Used like the ioctl function to control the preprocessor parameters * @param st Preprocessor state * @param request ioctl-type request (one of the SPEEX_PREPROCESS_* macros) * @param ptr Data exchanged to-from function diff --git a/thirdparties/iphone/include/speex/speex_resampler.h b/thirdparties/iphone/include/speex/speex_resampler.h index 54eef8d..4aefa61 100755 --- a/thirdparties/iphone/include/speex/speex_resampler.h +++ b/thirdparties/iphone/include/speex/speex_resampler.h @@ -1,8 +1,8 @@ /* Copyright (C) 2007 Jean-Marc Valin - + File: speex_resampler.h Resampling code - + The design goals of this code are: - Very fast algorithm - Low memory requirement @@ -43,7 +43,7 @@ /********* WARNING: MENTAL SANITY ENDS HERE *************/ -/* If the resampler is defined outside of Speex, we change the symbol names so that +/* If the resampler is defined outside of Speex, we change the symbol names so that there won't be any clash if linking with Speex later on. */ /* #define RANDOM_PREFIX your software name here */ @@ -53,7 +53,7 @@ #define CAT_PREFIX2(a,b) a ## b #define CAT_PREFIX(a,b) CAT_PREFIX2(a, b) - + #define speex_resampler_init CAT_PREFIX(RANDOM_PREFIX,_resampler_init) #define speex_resampler_init_frac CAT_PREFIX(RANDOM_PREFIX,_resampler_init_frac) #define speex_resampler_destroy CAT_PREFIX(RANDOM_PREFIX,_resampler_destroy) @@ -81,7 +81,7 @@ #define spx_int32_t int #define spx_uint16_t unsigned short #define spx_uint32_t unsigned int - + #else /* OUTSIDE_SPEEX */ #include "speex/speex_types.h" @@ -99,13 +99,13 @@ extern "C" { #define SPEEX_RESAMPLER_QUALITY_DESKTOP 5 enum { - RESAMPLER_ERR_SUCCESS = 0, - RESAMPLER_ERR_ALLOC_FAILED = 1, - RESAMPLER_ERR_BAD_STATE = 2, - RESAMPLER_ERR_INVALID_ARG = 3, - RESAMPLER_ERR_PTR_OVERLAP = 4, - - RESAMPLER_ERR_MAX_ERROR + RESAMPLER_ERR_SUCCESS = 0, + RESAMPLER_ERR_ALLOC_FAILED = 1, + RESAMPLER_ERR_BAD_STATE = 2, + RESAMPLER_ERR_INVALID_ARG = 3, + RESAMPLER_ERR_PTR_OVERLAP = 4, + + RESAMPLER_ERR_MAX_ERROR }; struct SpeexResamplerState_; @@ -120,14 +120,14 @@ typedef struct SpeexResamplerState_ SpeexResamplerState; * @return Newly created resampler state * @retval NULL Error: not enough memory */ -SpeexResamplerState *speex_resampler_init(spx_uint32_t nb_channels, - spx_uint32_t in_rate, - spx_uint32_t out_rate, - int quality, - int *err); - -/** Create a new resampler with fractional input/output rates. The sampling - * rate ratio is an arbitrary rational number with both the numerator and +SpeexResamplerState *speex_resampler_init(spx_uint32_t nb_channels, + spx_uint32_t in_rate, + spx_uint32_t out_rate, + int quality, + int *err); + +/** Create a new resampler with fractional input/output rates. The sampling + * rate ratio is an arbitrary rational number with both the numerator and * denominator being 32-bit integers. * @param nb_channels Number of channels to be processed * @param ratio_num Numerator of the sampling rate ratio @@ -139,13 +139,13 @@ SpeexResamplerState *speex_resampler_init(spx_uint32_t nb_channels, * @return Newly created resampler state * @retval NULL Error: not enough memory */ -SpeexResamplerState *speex_resampler_init_frac(spx_uint32_t nb_channels, - spx_uint32_t ratio_num, - spx_uint32_t ratio_den, - spx_uint32_t in_rate, - spx_uint32_t out_rate, - int quality, - int *err); +SpeexResamplerState *speex_resampler_init_frac(spx_uint32_t nb_channels, + spx_uint32_t ratio_num, + spx_uint32_t ratio_den, + spx_uint32_t in_rate, + spx_uint32_t out_rate, + int quality, + int *err); /** Destroy a resampler state. * @param st Resampler state @@ -154,24 +154,24 @@ void speex_resampler_destroy(SpeexResamplerState *st); /** Resample a float array. The input and output buffers must *not* overlap. * @param st Resampler state - * @param channel_index Index of the channel to process for the multi-channel + * @param channel_index Index of the channel to process for the multi-channel * base (0 otherwise) * @param in Input buffer - * @param in_len Number of input samples in the input buffer. Returns the + * @param in_len Number of input samples in the input buffer. Returns the * number of samples processed * @param out Output buffer * @param out_len Size of the output buffer. Returns the number of samples written */ -int speex_resampler_process_float(SpeexResamplerState *st, - spx_uint32_t channel_index, - const float *in, - spx_uint32_t *in_len, - float *out, - spx_uint32_t *out_len); +int speex_resampler_process_float(SpeexResamplerState *st, + spx_uint32_t channel_index, + const float *in, + spx_uint32_t *in_len, + float *out, + spx_uint32_t *out_len); /** Resample an int array. The input and output buffers must *not* overlap. * @param st Resampler state - * @param channel_index Index of the channel to process for the multi-channel + * @param channel_index Index of the channel to process for the multi-channel * base (0 otherwise) * @param in Input buffer * @param in_len Number of input samples in the input buffer. Returns the number @@ -179,12 +179,12 @@ int speex_resampler_process_float(SpeexResamplerState *st, * @param out Output buffer * @param out_len Size of the output buffer. Returns the number of samples written */ -int speex_resampler_process_int(SpeexResamplerState *st, - spx_uint32_t channel_index, - const spx_int16_t *in, - spx_uint32_t *in_len, - spx_int16_t *out, - spx_uint32_t *out_len); +int speex_resampler_process_int(SpeexResamplerState *st, + spx_uint32_t channel_index, + const spx_int16_t *in, + spx_uint32_t *in_len, + spx_int16_t *out, + spx_uint32_t *out_len); /** Resample an interleaved float array. The input and output buffers must *not* overlap. * @param st Resampler state @@ -195,11 +195,11 @@ int speex_resampler_process_int(SpeexResamplerState *st, * @param out_len Size of the output buffer. Returns the number of samples written. * This is all per-channel. */ -int speex_resampler_process_interleaved_float(SpeexResamplerState *st, - const float *in, - spx_uint32_t *in_len, - float *out, - spx_uint32_t *out_len); +int speex_resampler_process_interleaved_float(SpeexResamplerState *st, + const float *in, + spx_uint32_t *in_len, + float *out, + spx_uint32_t *out_len); /** Resample an interleaved int array. The input and output buffers must *not* overlap. * @param st Resampler state @@ -210,31 +210,31 @@ int speex_resampler_process_interleaved_float(SpeexResamplerState *st, * @param out_len Size of the output buffer. Returns the number of samples written. * This is all per-channel. */ -int speex_resampler_process_interleaved_int(SpeexResamplerState *st, - const spx_int16_t *in, - spx_uint32_t *in_len, - spx_int16_t *out, - spx_uint32_t *out_len); +int speex_resampler_process_interleaved_int(SpeexResamplerState *st, + const spx_int16_t *in, + spx_uint32_t *in_len, + spx_int16_t *out, + spx_uint32_t *out_len); /** Set (change) the input/output sampling rates (integer value). * @param st Resampler state * @param in_rate Input sampling rate (integer number of Hz). * @param out_rate Output sampling rate (integer number of Hz). */ -int speex_resampler_set_rate(SpeexResamplerState *st, - spx_uint32_t in_rate, - spx_uint32_t out_rate); +int speex_resampler_set_rate(SpeexResamplerState *st, + spx_uint32_t in_rate, + spx_uint32_t out_rate); /** Get the current input/output sampling rates (integer value). * @param st Resampler state * @param in_rate Input sampling rate (integer number of Hz) copied. * @param out_rate Output sampling rate (integer number of Hz) copied. */ -void speex_resampler_get_rate(SpeexResamplerState *st, - spx_uint32_t *in_rate, +void speex_resampler_get_rate(SpeexResamplerState *st, + spx_uint32_t *in_rate, spx_uint32_t *out_rate); -/** Set (change) the input/output sampling rates and resampling ratio +/** Set (change) the input/output sampling rates and resampling ratio * (fractional values in Hz supported). * @param st Resampler state * @param ratio_num Numerator of the sampling rate ratio @@ -242,11 +242,11 @@ void speex_resampler_get_rate(SpeexResamplerState *st, * @param in_rate Input sampling rate rounded to the nearest integer (in Hz). * @param out_rate Output sampling rate rounded to the nearest integer (in Hz). */ -int speex_resampler_set_rate_frac(SpeexResamplerState *st, - spx_uint32_t ratio_num, - spx_uint32_t ratio_den, - spx_uint32_t in_rate, - spx_uint32_t out_rate); +int speex_resampler_set_rate_frac(SpeexResamplerState *st, + spx_uint32_t ratio_num, + spx_uint32_t ratio_den, + spx_uint32_t in_rate, + spx_uint32_t out_rate); /** Get the current resampling ratio. This will be reduced to the least * common denominator. @@ -254,53 +254,53 @@ int speex_resampler_set_rate_frac(SpeexResamplerState *st, * @param ratio_num Numerator of the sampling rate ratio copied * @param ratio_den Denominator of the sampling rate ratio copied */ -void speex_resampler_get_ratio(SpeexResamplerState *st, - spx_uint32_t *ratio_num, +void speex_resampler_get_ratio(SpeexResamplerState *st, + spx_uint32_t *ratio_num, spx_uint32_t *ratio_den); /** Set (change) the conversion quality. * @param st Resampler state - * @param quality Resampling quality between 0 and 10, where 0 has poor + * @param quality Resampling quality between 0 and 10, where 0 has poor * quality and 10 has very high quality. */ -int speex_resampler_set_quality(SpeexResamplerState *st, - int quality); +int speex_resampler_set_quality(SpeexResamplerState *st, + int quality); /** Get the conversion quality. * @param st Resampler state - * @param quality Resampling quality between 0 and 10, where 0 has poor + * @param quality Resampling quality between 0 and 10, where 0 has poor * quality and 10 has very high quality. */ -void speex_resampler_get_quality(SpeexResamplerState *st, +void speex_resampler_get_quality(SpeexResamplerState *st, int *quality); /** Set (change) the input stride. * @param st Resampler state * @param stride Input stride */ -void speex_resampler_set_input_stride(SpeexResamplerState *st, +void speex_resampler_set_input_stride(SpeexResamplerState *st, spx_uint32_t stride); /** Get the input stride. * @param st Resampler state * @param stride Input stride copied */ -void speex_resampler_get_input_stride(SpeexResamplerState *st, +void speex_resampler_get_input_stride(SpeexResamplerState *st, spx_uint32_t *stride); /** Set (change) the output stride. * @param st Resampler state * @param stride Output stride */ -void speex_resampler_set_output_stride(SpeexResamplerState *st, - spx_uint32_t stride); +void speex_resampler_set_output_stride(SpeexResamplerState *st, + spx_uint32_t stride); /** Get the output stride. * @param st Resampler state copied * @param stride Output stride */ -void speex_resampler_get_output_stride(SpeexResamplerState *st, - spx_uint32_t *stride); +void speex_resampler_get_output_stride(SpeexResamplerState *st, + spx_uint32_t *stride); /** Get the latency in input samples introduced by the resampler. * @param st Resampler state @@ -312,8 +312,8 @@ int speex_resampler_get_input_latency(SpeexResamplerState *st); */ int speex_resampler_get_output_latency(SpeexResamplerState *st); -/** Make sure that the first samples to go out of the resamplers don't have - * leading zeros. This is only useful before starting to use a newly created +/** Make sure that the first samples to go out of the resamplers don't have + * leading zeros. This is only useful before starting to use a newly created * resampler. It is recommended to use that when resampling an audio file, as * it will generate a file with the same length. For real-time processing, * it is probably easier not to use this call (so that the output duration diff --git a/thirdparties/iphone/include/speex/speex_stereo.h b/thirdparties/iphone/include/speex/speex_stereo.h index a259713..f33704d 100755 --- a/thirdparties/iphone/include/speex/speex_stereo.h +++ b/thirdparties/iphone/include/speex/speex_stereo.h @@ -7,18 +7,18 @@ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + - Neither the name of the Xiph.org Foundation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -48,12 +48,12 @@ extern "C" { /** If you access any of these fields directly, I'll personally come and bite you */ typedef struct SpeexStereoState { - float balance; /**< Left/right balance info */ - float e_ratio; /**< Ratio of energies: E(left+right)/[E(left)+E(right)] */ - float smooth_left; /**< Smoothed left channel gain */ - float smooth_right; /**< Smoothed right channel gain */ - float reserved1; /**< Reserved for future use */ - float reserved2; /**< Reserved for future use */ + float balance; /**< Left/right balance info */ + float e_ratio; /**< Ratio of energies: E(left+right)/[E(left)+E(right)] */ + float smooth_left; /**< Smoothed left channel gain */ + float smooth_right; /**< Smoothed right channel gain */ + float reserved1; /**< Reserved for future use */ + float reserved2; /**< Reserved for future use */ } SpeexStereoState; /** Deprecated. Use speex_stereo_state_init() instead. */ diff --git a/thirdparties/iphone/include/speex/speex_types.h b/thirdparties/iphone/include/speex/speex_types.h index 737c5fa..b262aac 100755 --- a/thirdparties/iphone/include/speex/speex_types.h +++ b/thirdparties/iphone/include/speex/speex_types.h @@ -22,107 +22,107 @@ #ifndef _SPEEX_TYPES_H #define _SPEEX_TYPES_H -#if defined(_WIN32) +#if defined(_WIN32) # if defined(__CYGWIN__) # include <_G_config.h> - typedef _G_int32_t spx_int32_t; - typedef _G_uint32_t spx_uint32_t; - typedef _G_int16_t spx_int16_t; - typedef _G_uint16_t spx_uint16_t; +typedef _G_int32_t spx_int32_t; +typedef _G_uint32_t spx_uint32_t; +typedef _G_int16_t spx_int16_t; +typedef _G_uint16_t spx_uint16_t; # elif defined(__MINGW32__) - typedef short spx_int16_t; - typedef unsigned short spx_uint16_t; - typedef int spx_int32_t; - typedef unsigned int spx_uint32_t; +typedef short spx_int16_t; +typedef unsigned short spx_uint16_t; +typedef int spx_int32_t; +typedef unsigned int spx_uint32_t; # elif defined(__MWERKS__) - typedef int spx_int32_t; - typedef unsigned int spx_uint32_t; - typedef short spx_int16_t; - typedef unsigned short spx_uint16_t; +typedef int spx_int32_t; +typedef unsigned int spx_uint32_t; +typedef short spx_int16_t; +typedef unsigned short spx_uint16_t; # else - /* MSVC/Borland */ - typedef __int32 spx_int32_t; - typedef unsigned __int32 spx_uint32_t; - typedef __int16 spx_int16_t; - typedef unsigned __int16 spx_uint16_t; +/* MSVC/Borland */ +typedef __int32 spx_int32_t; +typedef unsigned __int32 spx_uint32_t; +typedef __int16 spx_int16_t; +typedef unsigned __int16 spx_uint16_t; # endif #elif defined(__MACOS__) # include <sys/types.h> - typedef SInt16 spx_int16_t; - typedef UInt16 spx_uint16_t; - typedef SInt32 spx_int32_t; - typedef UInt32 spx_uint32_t; +typedef SInt16 spx_int16_t; +typedef UInt16 spx_uint16_t; +typedef SInt32 spx_int32_t; +typedef UInt32 spx_uint32_t; #elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ # include <sys/types.h> - typedef int16_t spx_int16_t; - typedef u_int16_t spx_uint16_t; - typedef int32_t spx_int32_t; - typedef u_int32_t spx_uint32_t; +typedef int16_t spx_int16_t; +typedef u_int16_t spx_uint16_t; +typedef int32_t spx_int32_t; +typedef u_int32_t spx_uint32_t; #elif defined(__BEOS__) - /* Be */ +/* Be */ # include <inttypes.h> - typedef int16_t spx_int16_t; - typedef u_int16_t spx_uint16_t; - typedef int32_t spx_int32_t; - typedef u_int32_t spx_uint32_t; +typedef int16_t spx_int16_t; +typedef u_int16_t spx_uint16_t; +typedef int32_t spx_int32_t; +typedef u_int32_t spx_uint32_t; #elif defined (__EMX__) - /* OS/2 GCC */ - typedef short spx_int16_t; - typedef unsigned short spx_uint16_t; - typedef int spx_int32_t; - typedef unsigned int spx_uint32_t; +/* OS/2 GCC */ +typedef short spx_int16_t; +typedef unsigned short spx_uint16_t; +typedef int spx_int32_t; +typedef unsigned int spx_uint32_t; #elif defined (DJGPP) - /* DJGPP */ - typedef short spx_int16_t; - typedef int spx_int32_t; - typedef unsigned int spx_uint32_t; +/* DJGPP */ +typedef short spx_int16_t; +typedef int spx_int32_t; +typedef unsigned int spx_uint32_t; #elif defined(R5900) - /* PS2 EE */ - typedef int spx_int32_t; - typedef unsigned spx_uint32_t; - typedef short spx_int16_t; +/* PS2 EE */ +typedef int spx_int32_t; +typedef unsigned spx_uint32_t; +typedef short spx_int16_t; #elif defined(__SYMBIAN32__) - /* Symbian GCC */ - typedef signed short spx_int16_t; - typedef unsigned short spx_uint16_t; - typedef signed int spx_int32_t; - typedef unsigned int spx_uint32_t; +/* Symbian GCC */ +typedef signed short spx_int16_t; +typedef unsigned short spx_uint16_t; +typedef signed int spx_int32_t; +typedef unsigned int spx_uint32_t; #elif defined(CONFIG_TI_C54X) || defined (CONFIG_TI_C55X) - typedef short spx_int16_t; - typedef unsigned short spx_uint16_t; - typedef long spx_int32_t; - typedef unsigned long spx_uint32_t; +typedef short spx_int16_t; +typedef unsigned short spx_uint16_t; +typedef long spx_int32_t; +typedef unsigned long spx_uint32_t; #elif defined(CONFIG_TI_C6X) - typedef short spx_int16_t; - typedef unsigned short spx_uint16_t; - typedef int spx_int32_t; - typedef unsigned int spx_uint32_t; +typedef short spx_int16_t; +typedef unsigned short spx_uint16_t; +typedef int spx_int32_t; +typedef unsigned int spx_uint32_t; #elif ANDROID - typedef short spx_int16_t; - typedef unsigned short spx_uint16_t; - typedef int spx_int32_t; - typedef unsigned int spx_uint32_t; +typedef short spx_int16_t; +typedef unsigned short spx_uint16_t; +typedef int spx_int32_t; +typedef unsigned int spx_uint32_t; #else diff --git a/thirdparties/iphone/include/srtp/aes.h b/thirdparties/iphone/include/srtp/aes.h index 2881337..97fdb63 100755 --- a/thirdparties/iphone/include/srtp/aes.h +++ b/thirdparties/iphone/include/srtp/aes.h @@ -8,26 +8,26 @@ */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -55,19 +55,19 @@ /* aes internals */ typedef struct { - v128_t round[15]; - int num_rounds; + v128_t round[15]; + int num_rounds; } aes_expanded_key_t; err_status_t aes_expand_encryption_key(const uint8_t *key, - int key_len, - aes_expanded_key_t *expanded_key); + int key_len, + aes_expanded_key_t *expanded_key); err_status_t aes_expand_decryption_key(const uint8_t *key, - int key_len, - aes_expanded_key_t *expanded_key); + int key_len, + aes_expanded_key_t *expanded_key); void aes_encrypt(v128_t *plaintext, const aes_expanded_key_t *exp_key); @@ -77,7 +77,7 @@ aes_decrypt(v128_t *plaintext, const aes_expanded_key_t *exp_key); #if 0 /* - * internal functions + * internal functions */ void @@ -85,6 +85,6 @@ aes_init_sbox(void); void aes_compute_tables(void); -#endif +#endif #endif /* _AES_H */ diff --git a/thirdparties/iphone/include/srtp/aes_cbc.h b/thirdparties/iphone/include/srtp/aes_cbc.h index bc4e41a..7abd6d6 100755 --- a/thirdparties/iphone/include/srtp/aes_cbc.h +++ b/thirdparties/iphone/include/srtp/aes_cbc.h @@ -15,36 +15,36 @@ #include "cipher.h" typedef struct { - v128_t state; /* cipher chaining state */ - v128_t previous; /* previous ciphertext block */ - aes_expanded_key_t expanded_key; /* the cipher key */ + v128_t state; /* cipher chaining state */ + v128_t previous; /* previous ciphertext block */ + aes_expanded_key_t expanded_key; /* the cipher key */ } aes_cbc_ctx_t; err_status_t aes_cbc_set_key(aes_cbc_ctx_t *c, - const unsigned char *key); + const unsigned char *key); err_status_t -aes_cbc_encrypt(aes_cbc_ctx_t *c, - unsigned char *buf, - unsigned int *bytes_in_data); +aes_cbc_encrypt(aes_cbc_ctx_t *c, + unsigned char *buf, + unsigned int *bytes_in_data); err_status_t -aes_cbc_context_init(aes_cbc_ctx_t *c, const uint8_t *key, - int key_len, cipher_direction_t dir); +aes_cbc_context_init(aes_cbc_ctx_t *c, const uint8_t *key, + int key_len, cipher_direction_t dir); err_status_t aes_cbc_set_iv(aes_cbc_ctx_t *c, void *iv); err_status_t aes_cbc_nist_encrypt(aes_cbc_ctx_t *c, - unsigned char *data, - unsigned int *bytes_in_data); + unsigned char *data, + unsigned int *bytes_in_data); err_status_t aes_cbc_nist_decrypt(aes_cbc_ctx_t *c, - unsigned char *data, - unsigned int *bytes_in_data); + unsigned char *data, + unsigned int *bytes_in_data); #endif /* AES_CBC_H */ diff --git a/thirdparties/iphone/include/srtp/aes_icm.h b/thirdparties/iphone/include/srtp/aes_icm.h index dac0cdc..6ed032e 100755 --- a/thirdparties/iphone/include/srtp/aes_icm.h +++ b/thirdparties/iphone/include/srtp/aes_icm.h @@ -15,43 +15,43 @@ #include "cipher.h" typedef struct { - v128_t counter; /* holds the counter value */ - v128_t offset; /* initial offset value */ - v128_t keystream_buffer; /* buffers bytes of keystream */ - aes_expanded_key_t expanded_key; /* the cipher key */ - int bytes_in_buffer; /* number of unused bytes in buffer */ + v128_t counter; /* holds the counter value */ + v128_t offset; /* initial offset value */ + v128_t keystream_buffer; /* buffers bytes of keystream */ + aes_expanded_key_t expanded_key; /* the cipher key */ + int bytes_in_buffer; /* number of unused bytes in buffer */ } aes_icm_ctx_t; err_status_t aes_icm_context_init(aes_icm_ctx_t *c, - const unsigned char *key, - int key_len); + const unsigned char *key, + int key_len); err_status_t aes_icm_set_iv(aes_icm_ctx_t *c, void *iv); err_status_t aes_icm_encrypt(aes_icm_ctx_t *c, - unsigned char *buf, unsigned int *bytes_to_encr); + unsigned char *buf, unsigned int *bytes_to_encr); err_status_t aes_icm_output(aes_icm_ctx_t *c, - unsigned char *buf, int bytes_to_output); + unsigned char *buf, int bytes_to_output); -err_status_t +err_status_t aes_icm_dealloc(cipher_t *c); - -err_status_t -aes_icm_encrypt_ismacryp(aes_icm_ctx_t *c, - unsigned char *buf, - unsigned int *enc_len, - int forIsmacryp); - -err_status_t -aes_icm_alloc_ismacryp(cipher_t **c, - int key_len, - int forIsmacryp); + +err_status_t +aes_icm_encrypt_ismacryp(aes_icm_ctx_t *c, + unsigned char *buf, + unsigned int *enc_len, + int forIsmacryp); + +err_status_t +aes_icm_alloc_ismacryp(cipher_t **c, + int key_len, + int forIsmacryp); #endif /* AES_ICM_H */ diff --git a/thirdparties/iphone/include/srtp/alloc.h b/thirdparties/iphone/include/srtp/alloc.h index 5980eed..306e5f4 100755 --- a/thirdparties/iphone/include/srtp/alloc.h +++ b/thirdparties/iphone/include/srtp/alloc.h @@ -1,32 +1,32 @@ /* * alloc.h * - * interface to memory allocation and deallocation, with optional debugging + * interface to memory allocation and deallocation, with optional debugging * * David A. McGrew * Cisco Systems, Inc. */ /* - * + * * Copyright (c) 2001-2006 Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS diff --git a/thirdparties/iphone/include/srtp/auth.h b/thirdparties/iphone/include/srtp/auth.h index 5b5e4b2..4d03d08 100755 --- a/thirdparties/iphone/include/srtp/auth.h +++ b/thirdparties/iphone/include/srtp/auth.h @@ -8,26 +8,26 @@ */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -46,7 +46,7 @@ #ifndef AUTH_H #define AUTH_H -#include "datatypes.h" +#include "datatypes.h" #include "err.h" /* error codes */ #include "crypto.h" /* for auth_type_id_t */ #include "crypto_types.h" /* for values of auth_type_id_t */ @@ -55,22 +55,22 @@ typedef struct auth_type_t *auth_type_pointer; typedef struct auth_t *auth_pointer_t; typedef err_status_t (*auth_alloc_func) - (auth_pointer_t *ap, int key_len, int out_len); +(auth_pointer_t *ap, int key_len, int out_len); typedef err_status_t (*auth_init_func) - (void *state, const uint8_t *key, int key_len); +(void *state, const uint8_t *key, int key_len); typedef err_status_t (*auth_dealloc_func)(auth_pointer_t ap); typedef err_status_t (*auth_compute_func) - (void *state, uint8_t *buffer, int octets_to_auth, - int tag_len, uint8_t *tag); +(void *state, uint8_t *buffer, int octets_to_auth, + int tag_len, uint8_t *tag); typedef err_status_t (*auth_update_func) - (void *state, uint8_t *buffer, int octets_to_auth); +(void *state, uint8_t *buffer, int octets_to_auth); typedef err_status_t (*auth_start_func)(void *state); - + /* some syntactic sugar on these function types */ #define auth_type_alloc(at, a, klen, outlen) \ @@ -109,40 +109,40 @@ auth_get_prefix_length(const struct auth_t *a); */ typedef struct auth_test_case_t { - int key_length_octets; /* octets in key */ - uint8_t *key; /* key */ - int data_length_octets; /* octets in data */ - uint8_t *data; /* data */ - int tag_length_octets; /* octets in tag */ - uint8_t *tag; /* tag */ - struct auth_test_case_t *next_test_case; /* pointer to next testcase */ + int key_length_octets; /* octets in key */ + uint8_t *key; /* key */ + int data_length_octets; /* octets in data */ + uint8_t *data; /* data */ + int tag_length_octets; /* octets in tag */ + uint8_t *tag; /* tag */ + struct auth_test_case_t *next_test_case; /* pointer to next testcase */ } auth_test_case_t; /* auth_type_t */ typedef struct auth_type_t { - auth_alloc_func alloc; - auth_dealloc_func dealloc; - auth_init_func init; - auth_compute_func compute; - auth_update_func update; - auth_start_func start; - char *description; - int ref_count; - auth_test_case_t *test_data; - debug_module_t *debug; - auth_type_id_t id; + auth_alloc_func alloc; + auth_dealloc_func dealloc; + auth_init_func init; + auth_compute_func compute; + auth_update_func update; + auth_start_func start; + char *description; + int ref_count; + auth_test_case_t *test_data; + debug_module_t *debug; + auth_type_id_t id; } auth_type_t; typedef struct auth_t { - auth_type_t *type; - void *state; - int out_len; /* length of output tag in octets */ - int key_len; /* length of key in octets */ - int prefix_len; /* length of keystream prefix */ + auth_type_t *type; + void *state; + int out_len; /* length of output tag in octets */ + int key_len; /* length of key in octets */ + int prefix_len; /* length of keystream prefix */ } auth_t; -/* +/* * auth_type_self_test() tests an auth_type against test cases * provided in an array of values of key/message/tag that is known to * be good @@ -151,7 +151,7 @@ typedef struct auth_t { err_status_t auth_type_self_test(const auth_type_t *at); -/* +/* * auth_type_test() tests an auth_type against external test cases * provided in an array of values of key/message/tag that is known to * be good diff --git a/thirdparties/iphone/include/srtp/cipher.h b/thirdparties/iphone/include/srtp/cipher.h index eff6dd1..9529153 100755 --- a/thirdparties/iphone/include/srtp/cipher.h +++ b/thirdparties/iphone/include/srtp/cipher.h @@ -7,26 +7,26 @@ * Cisco Systems, Inc. */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -46,7 +46,7 @@ #ifndef CIPHER_H #define CIPHER_H -#include "datatypes.h" +#include "datatypes.h" #include "rdbx.h" /* for xtd_seq_num_t */ #include "err.h" /* for error codes */ #include "crypto.h" /* for cipher_type_id_t */ @@ -54,17 +54,17 @@ /** - * @brief cipher_direction_t defines a particular cipher operation. + * @brief cipher_direction_t defines a particular cipher operation. * * A cipher_direction_t is an enum that describes a particular cipher * operation, i.e. encryption or decryption. For some ciphers, this * distinction does not matter, but for others, it is essential. */ -typedef enum { - direction_encrypt, /**< encryption (convert plaintext to ciphertext) */ - direction_decrypt, /**< decryption (convert ciphertext to plaintext) */ - direction_any /**< encryption or decryption */ +typedef enum { + direction_encrypt, /**< encryption (convert plaintext to ciphertext) */ + direction_decrypt, /**< decryption (convert ciphertext to plaintext) */ + direction_any /**< encryption or decryption */ } cipher_direction_t; /* @@ -76,13 +76,13 @@ typedef struct cipher_type_t *cipher_type_pointer_t; typedef struct cipher_t *cipher_pointer_t; /* - * a cipher_alloc_func_t allocates (but does not initialize) a cipher_t + * a cipher_alloc_func_t allocates (but does not initialize) a cipher_t */ typedef err_status_t (*cipher_alloc_func_t) - (cipher_pointer_t *cp, int key_len); +(cipher_pointer_t *cp, int key_len); -/* +/* * a cipher_init_func_t [re-]initializes a cipher_t with a given key * and direction (i.e., encrypt or decrypt) */ @@ -97,24 +97,24 @@ typedef err_status_t (*cipher_dealloc_func_t)(cipher_pointer_t cp); /* a cipher_set_segment_func_t sets the segment index of a cipher_t */ typedef err_status_t (*cipher_set_segment_func_t) - (void *state, xtd_seq_num_t idx); +(void *state, xtd_seq_num_t idx); /* a cipher_encrypt_func_t encrypts data in-place */ typedef err_status_t (*cipher_encrypt_func_t) - (void *state, uint8_t *buffer, unsigned int *octets_to_encrypt); +(void *state, uint8_t *buffer, unsigned int *octets_to_encrypt); /* a cipher_decrypt_func_t decrypts data in-place */ typedef err_status_t (*cipher_decrypt_func_t) - (void *state, uint8_t *buffer, unsigned int *octets_to_decrypt); +(void *state, uint8_t *buffer, unsigned int *octets_to_decrypt); -/* +/* * a cipher_set_iv_func_t function sets the current initialization vector */ typedef err_status_t (*cipher_set_iv_func_t) - (cipher_pointer_t cp, void *iv); +(cipher_pointer_t cp, void *iv); /* * cipher_test_case_t is a (list of) key, salt, xtd_seq_num_t, @@ -125,30 +125,30 @@ typedef err_status_t (*cipher_set_iv_func_t) */ typedef struct cipher_test_case_t { - int key_length_octets; /* octets in key */ - uint8_t *key; /* key */ - uint8_t *idx; /* packet index */ - int plaintext_length_octets; /* octets in plaintext */ - uint8_t *plaintext; /* plaintext */ - int ciphertext_length_octets; /* octets in plaintext */ - uint8_t *ciphertext; /* ciphertext */ - struct cipher_test_case_t *next_test_case; /* pointer to next testcase */ + int key_length_octets; /* octets in key */ + uint8_t *key; /* key */ + uint8_t *idx; /* packet index */ + int plaintext_length_octets; /* octets in plaintext */ + uint8_t *plaintext; /* plaintext */ + int ciphertext_length_octets; /* octets in plaintext */ + uint8_t *ciphertext; /* ciphertext */ + struct cipher_test_case_t *next_test_case; /* pointer to next testcase */ } cipher_test_case_t; /* cipher_type_t defines the 'metadata' for a particular cipher type */ typedef struct cipher_type_t { - cipher_alloc_func_t alloc; - cipher_dealloc_func_t dealloc; - cipher_init_func_t init; - cipher_encrypt_func_t encrypt; - cipher_encrypt_func_t decrypt; - cipher_set_iv_func_t set_iv; - char *description; - int ref_count; - cipher_test_case_t *test_data; - debug_module_t *debug; - cipher_type_id_t id; + cipher_alloc_func_t alloc; + cipher_dealloc_func_t dealloc; + cipher_init_func_t init; + cipher_encrypt_func_t encrypt; + cipher_encrypt_func_t decrypt; + cipher_set_iv_func_t set_iv; + char *description; + int ref_count; + cipher_test_case_t *test_data; + debug_module_t *debug; + cipher_type_id_t id; } cipher_type_t; /* @@ -157,11 +157,11 @@ typedef struct cipher_type_t { */ typedef struct cipher_t { - cipher_type_t *type; - void *state; - int key_len; + cipher_type_t *type; + void *state; + int key_len; #ifdef FORCE_64BIT_ALIGN - int pad; + int pad; #endif } cipher_t; @@ -181,7 +181,7 @@ typedef struct cipher_t { #define cipher_set_iv(c, n) \ ((c) ? (((c)->type)->set_iv(((cipher_pointer_t)(c)->state), (n))) : \ - err_status_no_such_op) + err_status_no_such_op) err_status_t cipher_output(cipher_t *c, uint8_t *buffer, int num_octets_to_output); @@ -193,9 +193,9 @@ int cipher_get_key_length(const cipher_t *c); -/* - * cipher_type_self_test() tests a cipher against test cases provided in - * an array of values of key/xtd_seq_num_t/plaintext/ciphertext +/* + * cipher_type_self_test() tests a cipher against test cases provided in + * an array of values of key/xtd_seq_num_t/plaintext/ciphertext * that is known to be good */ @@ -203,9 +203,9 @@ err_status_t cipher_type_self_test(const cipher_type_t *ct); -/* - * cipher_type_test() tests a cipher against external test cases provided in - * an array of values of key/xtd_seq_num_t/plaintext/ciphertext +/* + * cipher_type_test() tests a cipher against external test cases provided in + * an array of values of key/xtd_seq_num_t/plaintext/ciphertext * that is known to be good */ @@ -216,7 +216,7 @@ cipher_type_test(const cipher_type_t *ct, const cipher_test_case_t *test_data); /* * cipher_bits_per_second(c, l, t) computes (and estimate of) the * number of bits that a cipher implementation can encrypt in a second - * + * * c is a cipher (which MUST be allocated and initialized already), l * is the length in octets of the test data to be encrypted, and t is * the number of trials diff --git a/thirdparties/iphone/include/srtp/crypto.h b/thirdparties/iphone/include/srtp/crypto.h index 0e9667d..9d656fa 100755 --- a/thirdparties/iphone/include/srtp/crypto.h +++ b/thirdparties/iphone/include/srtp/crypto.h @@ -2,7 +2,7 @@ * crypto.h * * API for libcrypto - * + * * David A. McGrew * Cisco Systems, Inc. */ @@ -10,7 +10,7 @@ #ifndef CRYPTO_H #define CRYPTO_H -/** +/** * @brief A cipher_type_id_t is an identifier for a particular cipher * type. * @@ -19,10 +19,10 @@ * NULL_CIPHER is avaliable; this cipher leaves the data unchanged, * and can be selected to indicate that no encryption is to take * place. - * + * * @ingroup Ciphers */ -typedef uint32_t cipher_type_id_t; +typedef uint32_t cipher_type_id_t; /** * @brief An auth_type_id_t is an identifier for a particular authentication @@ -33,7 +33,7 @@ typedef uint32_t cipher_type_id_t; * avaliable; this authentication function performs no computation, * and can be selected to indicate that no authentication is to take * place. - * + * * @ingroup Authentication */ typedef uint32_t auth_type_id_t; diff --git a/thirdparties/iphone/include/srtp/crypto_kernel.h b/thirdparties/iphone/include/srtp/crypto_kernel.h index 1acf497..c496174 100755 --- a/thirdparties/iphone/include/srtp/crypto_kernel.h +++ b/thirdparties/iphone/include/srtp/crypto_kernel.h @@ -7,26 +7,26 @@ * Cisco Systems, Inc. */ /* - * + * * Copyright(c) 2001-2006 Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -46,9 +46,9 @@ #ifndef CRYPTO_KERNEL #define CRYPTO_KERNEL -#include "rand_source.h" +#include "rand_source.h" #include "prng.h" -#include "cipher.h" +#include "cipher.h" #include "auth.h" #include "cryptoalg.h" #include "stat.h" @@ -65,37 +65,37 @@ */ typedef enum { - crypto_kernel_state_insecure, - crypto_kernel_state_secure + crypto_kernel_state_insecure, + crypto_kernel_state_secure } crypto_kernel_state_t; -/* - * linked list of cipher types +/* + * linked list of cipher types */ typedef struct kernel_cipher_type { - cipher_type_id_t id; - cipher_type_t *cipher_type; - struct kernel_cipher_type *next; + cipher_type_id_t id; + cipher_type_t *cipher_type; + struct kernel_cipher_type *next; } kernel_cipher_type_t; -/* - * linked list of auth types +/* + * linked list of auth types */ typedef struct kernel_auth_type { - auth_type_id_t id; - auth_type_t *auth_type; - struct kernel_auth_type *next; + auth_type_id_t id; + auth_type_t *auth_type; + struct kernel_auth_type *next; } kernel_auth_type_t; /* - * linked list of debug modules + * linked list of debug modules */ typedef struct kernel_debug_module { - debug_module_t *mod; - struct kernel_debug_module *next; + debug_module_t *mod; + struct kernel_debug_module *next; } kernel_debug_module_t; @@ -107,10 +107,10 @@ typedef struct kernel_debug_module { */ typedef struct { - crypto_kernel_state_t state; /* current state of kernel */ - kernel_cipher_type_t *cipher_type_list; /* list of all cipher types */ - kernel_auth_type_t *auth_type_list; /* list of all auth func types */ - kernel_debug_module_t *debug_module_list; /* list of all debug modules */ + crypto_kernel_state_t state; /* current state of kernel */ + kernel_cipher_type_t *cipher_type_list; /* list of all cipher types */ + kernel_auth_type_t *auth_type_list; /* list of all auth func types */ + kernel_debug_module_t *debug_module_list; /* list of all debug modules */ } crypto_kernel_t; @@ -125,10 +125,10 @@ typedef struct { * crypto algorithms. Possible return values are: * * err_status_ok initialization successful - * <other> init failure + * <other> init failure * * If any value other than err_status_ok is returned, the - * crypto_kernel MUST NOT be used. + * crypto_kernel MUST NOT be used. */ err_status_t @@ -142,7 +142,7 @@ crypto_kernel_init(void); * values are: * * err_status_ok shutdown successful - * <other> shutdown failure + * <other> shutdown failure * */ @@ -155,7 +155,7 @@ crypto_kernel_shutdown(void); * status report. Possible return values are: * * err_status_ok all tests were passed - * <other> a test failed + * <other> a test failed * */ @@ -184,7 +184,7 @@ crypto_kernel_load_auth_type(auth_type_t *ct, auth_type_id_t id); /* * crypto_kernel_replace_cipher_type(ct, id) - * + * * replaces the crypto kernel's existing cipher for the cipher_type id * with a new one passed in externally. The new cipher must pass all the * existing cipher_type's self tests as well as its own. @@ -195,7 +195,7 @@ crypto_kernel_replace_cipher_type(cipher_type_t *ct, cipher_type_id_t id); /* * crypto_kernel_replace_auth_type(ct, id) - * + * * replaces the crypto kernel's existing cipher for the auth_type id * with a new one passed in externally. The new auth type must pass all the * existing auth_type's self tests as well as its own. @@ -208,43 +208,43 @@ err_status_t crypto_kernel_load_debug_module(debug_module_t *new_dm); /* - * crypto_kernel_alloc_cipher(id, cp, key_len); + * crypto_kernel_alloc_cipher(id, cp, key_len); * * allocates a cipher of type id at location *cp, with key length * key_len octets. Return values are: - * + * * err_status_ok no problems * err_status_alloc_fail an allocation failure occured * err_status_fail couldn't find cipher with identifier 'id' */ err_status_t -crypto_kernel_alloc_cipher(cipher_type_id_t id, - cipher_pointer_t *cp, - int key_len); +crypto_kernel_alloc_cipher(cipher_type_id_t id, + cipher_pointer_t *cp, + int key_len); /* - * crypto_kernel_alloc_auth(id, ap, key_len, tag_len); + * crypto_kernel_alloc_auth(id, ap, key_len, tag_len); * * allocates an auth function of type id at location *ap, with key * length key_len octets and output tag length of tag_len. Return * values are: - * + * * err_status_ok no problems * err_status_alloc_fail an allocation failure occured * err_status_fail couldn't find auth with identifier 'id' */ err_status_t -crypto_kernel_alloc_auth(auth_type_id_t id, - auth_pointer_t *ap, - int key_len, - int tag_len); +crypto_kernel_alloc_auth(auth_type_id_t id, + auth_pointer_t *ap, + int key_len, + int tag_len); /* * crypto_kernel_set_debug_module(mod_name, v) - * + * * sets dynamic debugging to the value v (0 for off, 1 for on) for the * debug module with the name mod_name * @@ -261,7 +261,7 @@ crypto_kernel_set_debug_module(char *mod_name, int v); * random data to the location to which dest points, and returns an * error code. This error code @b must be checked, and if a failure is * reported, the data in the buffer @b must @b not be used. - * + * * @warning If the return code is not checked, then non-random * data may be in the buffer. This function will fail * unless it is called after crypto_kernel_init(). @@ -276,5 +276,5 @@ crypto_kernel_set_debug_module(char *mod_name, int v); */ err_status_t crypto_get_random(unsigned char *buffer, unsigned int length); - + #endif /* CRYPTO_KERNEL */ diff --git a/thirdparties/iphone/include/srtp/crypto_math.h b/thirdparties/iphone/include/srtp/crypto_math.h index 52f0837..4de3912 100755 --- a/thirdparties/iphone/include/srtp/crypto_math.h +++ b/thirdparties/iphone/include/srtp/crypto_math.h @@ -7,26 +7,26 @@ * Cisco Systems, Inc. */ /* - * + * * Copyright (c) 2001-2006 Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -95,7 +95,7 @@ hex_string_to_v64(char *s); /* the matrix A[] is stored in column format, i.e., A[i] is the ith column of the matrix */ -uint8_t +uint8_t A_times_x_plus_b(uint8_t A[8], uint8_t x, uint8_t b); void @@ -118,11 +118,11 @@ octet_string_set_to_zero(uint8_t *s, int len); -/* +/* * the matrix A[] is stored in column format, i.e., A[i] is the ith * column of the matrix */ -uint8_t +uint8_t A_times_x_plus_b(uint8_t A[8], uint8_t x, uint8_t b); @@ -165,8 +165,8 @@ A_times_x_plus_b(uint8_t A[8], uint8_t x, uint8_t b); + htonl(tmp >> 32); \ z->v32[0] = ntohl((uint32_t) tmp); \ } - -#endif /* WORDS_BIGENDIAN */ + +#endif /* WORDS_BIGENDIAN */ #endif #ifdef DATATYPES_USE_MACROS /* little functions are really macros */ @@ -176,7 +176,7 @@ A_times_x_plus_b(uint8_t A[8], uint8_t x, uint8_t b); #define v128_xor(z, x, y) _v128_xor(z, x, y) #define v128_and(z, x, y) _v128_and(z, x, y) #define v128_or(z, x, y) _v128_or(z, x, y) -#define v128_complement(x) _v128_complement(x) +#define v128_complement(x) _v128_complement(x) #define v128_is_eq(x, y) _v128_is_eq(x, y) #define v128_xor_eq(x, y) _v128_xor_eq(x, y) #define v128_get_bit(x, i) _v128_get_bit(x, i) @@ -202,7 +202,7 @@ void v128_and(v128_t *z, v128_t *x, v128_t *y); void -v128_or(v128_t *z, v128_t *x, v128_t *y); +v128_or(v128_t *z, v128_t *x, v128_t *y); void v128_complement(v128_t *x); @@ -211,10 +211,10 @@ int v128_get_bit(const v128_t *x, int i); void -v128_set_bit(v128_t *x, int i) ; +v128_set_bit(v128_t *x, int i) ; void -v128_clear_bit(v128_t *x, int i); +v128_clear_bit(v128_t *x, int i); void v128_set_bit_to(v128_t *x, int i, int y); diff --git a/thirdparties/iphone/include/srtp/crypto_types.h b/thirdparties/iphone/include/srtp/crypto_types.h index 3531710..06a05dc 100755 --- a/thirdparties/iphone/include/srtp/crypto_types.h +++ b/thirdparties/iphone/include/srtp/crypto_types.h @@ -7,26 +7,26 @@ * Cisco Systems, Inc. */ /* - * + * * Copyright(c) 2001-2006 Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -57,14 +57,14 @@ * (UST) must be used in conjunction with a cipher other than the null * cipher. These functions require a per-message pseudorandom input * that is generated by the cipher. - * + * * The identifiers STRONGHOLD_AUTH and STRONGHOLD_CIPHER identify the * strongest available authentication function and cipher, * respectively. They are resolved at compile time to the strongest * available algorithm. The stronghold algorithms can serve as did * the keep of a medieval fortification; they provide the strongest * defense (or the last refuge). - * + * * @{ */ @@ -72,7 +72,7 @@ * @defgroup Ciphers Cipher Types * * @brief Each cipher type is identified by an unsigned integer. The - * cipher types available in this edition of libSRTP are given + * cipher types available in this edition of libSRTP are given * by the #defines below. * * A cipher_type_id_t is an identifier for a cipher_type; only values @@ -90,56 +90,56 @@ /** * @brief The null cipher performs no encryption. * - * The NULL_CIPHER leaves its inputs unaltered, during both the + * The NULL_CIPHER leaves its inputs unaltered, during both the * encryption and decryption operations. This cipher can be chosen * to indicate that no encryption is to be performed. */ -#define NULL_CIPHER 0 +#define NULL_CIPHER 0 -/** - * @brief AES Integer Counter Mode (AES ICM) +/** + * @brief AES Integer Counter Mode (AES ICM) * - * AES ICM is the variant of counter mode that is used by Secure RTP. + * AES ICM is the variant of counter mode that is used by Secure RTP. * This cipher uses a 16-, 24-, or 32-octet key concatenated with a * 14-octet offset (or salt) value. */ -#define AES_ICM 1 +#define AES_ICM 1 -/** - * @brief AES-128 Integer Counter Mode (AES ICM) +/** + * @brief AES-128 Integer Counter Mode (AES ICM) * AES-128 ICM is a deprecated alternate name for AES ICM. */ #define AES_128_ICM AES_ICM /** - * @brief SEAL 3.0 - * + * @brief SEAL 3.0 + * * SEAL is the Software-Optimized Encryption Algorithm of Coppersmith * and Rogaway. Nota bene: this cipher is IBM proprietary. */ -#define SEAL 2 +#define SEAL 2 -/** - * @brief AES Cipher Block Chaining mode (AES CBC) +/** + * @brief AES Cipher Block Chaining mode (AES CBC) * * AES CBC is the AES Cipher Block Chaining mode. * This cipher uses a 16-, 24-, or 32-octet key. */ -#define AES_CBC 3 +#define AES_CBC 3 -/** - * @brief AES-128 Cipher Block Chaining mode (AES CBC) +/** + * @brief AES-128 Cipher Block Chaining mode (AES CBC) * * AES-128 CBC is a deprecated alternate name for AES CBC. */ -#define AES_128_CBC AES_CBC +#define AES_128_CBC AES_CBC /** * @brief Strongest available cipher. * * This identifier resolves to the strongest cipher type available. */ -#define STRONGHOLD_CIPHER AES_ICM +#define STRONGHOLD_CIPHER AES_ICM /** * @} @@ -149,14 +149,14 @@ /** * @defgroup Authentication Authentication Function Types - * + * * @brief Each authentication function type is identified by an * unsigned integer. The authentication function types available in * this edition of libSRTP are given by the #defines below. * * An auth_type_id_t is an identifier for an authentication function type; - * only values given by the #defines above (or those present in the - * file crypto_types.h) should be used. + * only values given by the #defines above (or those present in the + * file crypto_types.h) should be used. * * The identifier STRONGHOLD_AUTH indicates the strongest available * authentication function, allowing an application to choose the @@ -173,8 +173,8 @@ * * The NULL_AUTH function does nothing, and can be selected to indicate * that authentication should not be performed. - */ -#define NULL_AUTH 0 + */ +#define NULL_AUTH 0 /** * @brief UST with TMMH Version 2 @@ -184,15 +184,15 @@ * than the null cipher. * with a cipher. */ -#define UST_TMMHv2 1 +#define UST_TMMHv2 1 /** - * @brief (UST) AES-128 XORMAC + * @brief (UST) AES-128 XORMAC * * UST_AES_128_XMAC implements AES-128 XORMAC, using UST. Nota bene: * the XORMAC algorithm is IBM proprietary. */ -#define UST_AES_128_XMAC 2 +#define UST_AES_128_XMAC 2 /** * @brief HMAC-SHA1 @@ -200,7 +200,7 @@ * HMAC_SHA1 implements the Hash-based MAC using the NIST Secure * Hash Algorithm version 1 (SHA1). */ -#define HMAC_SHA1 3 +#define HMAC_SHA1 3 /** * @brief Strongest available authentication function. @@ -208,7 +208,7 @@ * This identifier resolves to the strongest available authentication * function. */ -#define STRONGHOLD_AUTH HMAC_SHA1 +#define STRONGHOLD_AUTH HMAC_SHA1 /** * @} diff --git a/thirdparties/iphone/include/srtp/cryptoalg.h b/thirdparties/iphone/include/srtp/cryptoalg.h index d9f0441..ad29fa0 100755 --- a/thirdparties/iphone/include/srtp/cryptoalg.h +++ b/thirdparties/iphone/include/srtp/cryptoalg.h @@ -2,31 +2,31 @@ * cryptoalg.h * * API for authenticated encryption crypto algorithms - * + * * David A. McGrew * Cisco Systems, Inc. */ /* - * + * * Copyright (c) 2001-2006 Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -61,10 +61,10 @@ * The function pointer cryptoalg_func_t points to a function that * implements a crypto transform, and provides a uniform API for * accessing crypto mechanisms. - * - * @param key location of secret key * - * @param clear data to be authenticated but not encrypted + * @param key location of secret key + * + * @param clear data to be authenticated but not encrypted * * @param clear_len length of data to be authenticated but not encrypted * @@ -79,34 +79,34 @@ * length of the ciphertext (after the call) * */ - -typedef err_status_t (*cryptoalg_func_t) - (void *key, - const void *clear, - unsigned clear_len, - void *iv, - void *protect, - unsigned *protected_len); - -typedef + +typedef err_status_t (*cryptoalg_func_t) +(void *key, + const void *clear, + unsigned clear_len, + void *iv, + void *protect, + unsigned *protected_len); + +typedef err_status_t (*cryptoalg_inv_t) - (void *key, /* location of secret key */ - const void *clear, /* data to be authenticated only */ - unsigned clear_len, /* length of data to be authenticated only */ - void *iv, /* location of iv */ - void *opaque, /* data to be decrypted and authenticated */ - unsigned *opaque_len /* location of the length of data to be - * decrypted and authd (before and after) +(void *key, /* location of secret key */ + const void *clear, /* data to be authenticated only */ + unsigned clear_len, /* length of data to be authenticated only */ + void *iv, /* location of iv */ + void *opaque, /* data to be decrypted and authenticated */ + unsigned *opaque_len /* location of the length of data to be + * decrypted and authd (before and after) */ - ); +); typedef struct cryptoalg_ctx_t { - cryptoalg_func_t enc; - cryptoalg_inv_t dec; - unsigned key_len; - unsigned iv_len; - unsigned auth_tag_len; - unsigned max_expansion; + cryptoalg_func_t enc; + cryptoalg_inv_t dec; + unsigned key_len; + unsigned iv_len; + unsigned auth_tag_len; + unsigned max_expansion; } cryptoalg_ctx_t; typedef cryptoalg_ctx_t *cryptoalg_t; @@ -120,7 +120,7 @@ typedef cryptoalg_ctx_t *cryptoalg_t; int cryptoalg_get_id(cryptoalg_t c); -cryptoalg_t +cryptoalg_t cryptoalg_find_by_id(int id); diff --git a/thirdparties/iphone/include/srtp/datatypes.h b/thirdparties/iphone/include/srtp/datatypes.h index e16d895..314a73a 100755 --- a/thirdparties/iphone/include/srtp/datatypes.h +++ b/thirdparties/iphone/include/srtp/datatypes.h @@ -1,6 +1,6 @@ /* * datatypes.h - * + * * data types for bit vectors and finite fields * * David A. McGrew @@ -8,26 +8,26 @@ */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -65,31 +65,31 @@ /* if DATATYPES_USE_MACROS is defined, then little functions are macros */ -#define DATATYPES_USE_MACROS +#define DATATYPES_USE_MACROS typedef union { - uint8_t v8[2]; - uint16_t value; + uint8_t v8[2]; + uint16_t value; } v16_t; typedef union { - uint8_t v8[4]; - uint16_t v16[2]; - uint32_t value; + uint8_t v8[4]; + uint16_t v16[2]; + uint32_t value; } v32_t; typedef union { - uint8_t v8[8]; - uint16_t v16[4]; - uint32_t v32[2]; - uint64_t value; + uint8_t v8[8]; + uint16_t v16[4]; + uint32_t v32[2]; + uint64_t value; } v64_t; typedef union { - uint8_t v8[16]; - uint16_t v16[8]; - uint32_t v32[4]; - uint64_t v64[2]; + uint8_t v8[16]; + uint16_t v16[8]; + uint32_t v32[4]; + uint64_t v64[2]; } v128_t; @@ -162,7 +162,7 @@ v128_right_shift(v128_t *x, int shift_index); /* * the following macros define the data manipulation functions - * + * * If DATATYPES_USE_MACROS is defined, then these macros are used * directly (and function call overhead is avoided). Otherwise, * the macros are used through the functions defined in datatypes.c @@ -309,18 +309,18 @@ v128_right_shift(v128_t *x, int shift_index); + htonl(tmp >> 32); \ z->v32[0] = ntohl((uint32_t) tmp); \ } -#endif /* WORDS_BIGENDIAN */ +#endif /* WORDS_BIGENDIAN */ #endif /* 0 */ #ifdef DATATYPES_USE_MACROS /* little functions are really macros */ - + #define v128_set_to_zero(z) _v128_set_to_zero(z) #define v128_copy(z, x) _v128_copy(z, x) #define v128_xor(z, x, y) _v128_xor(z, x, y) #define v128_and(z, x, y) _v128_and(z, x, y) #define v128_or(z, x, y) _v128_or(z, x, y) -#define v128_complement(x) _v128_complement(x) +#define v128_complement(x) _v128_complement(x) #define v128_is_eq(x, y) _v128_is_eq(x, y) #define v128_xor_eq(x, y) _v128_xor_eq(x, y) #define v128_get_bit(x, i) _v128_get_bit(x, i) @@ -346,7 +346,7 @@ void v128_and(v128_t *z, v128_t *x, v128_t *y); void -v128_or(v128_t *z, v128_t *x, v128_t *y); +v128_or(v128_t *z, v128_t *x, v128_t *y); void v128_complement(v128_t *x); @@ -355,10 +355,10 @@ int v128_get_bit(const v128_t *x, int i); void -v128_set_bit(v128_t *x, int i) ; +v128_set_bit(v128_t *x, int i) ; void -v128_clear_bit(v128_t *x, int i); +v128_clear_bit(v128_t *x, int i); void v128_set_bit_to(v128_t *x, int i, int y); @@ -379,7 +379,7 @@ octet_string_set_to_zero(uint8_t *s, int len); #ifndef SRTP_KERNEL_LINUX -/* +/* * Convert big endian integers to CPU byte order. */ #ifdef WORDS_BIGENDIAN @@ -395,10 +395,11 @@ octet_string_set_to_zero(uint8_t *s, int len); #if defined(__GNUC__) && defined(HAVE_X86) /* Fall back. */ -static inline uint32_t be32_to_cpu(uint32_t v) { - /* optimized for x86. */ - asm("bswap %0" : "=r" (v) : "0" (v)); - return v; +static inline uint32_t be32_to_cpu(uint32_t v) +{ + /* optimized for x86. */ + asm("bswap %0" : "=r" (v) : "0" (v)); + return v; } # else /* HAVE_X86 */ # ifdef HAVE_NETINET_IN_H @@ -409,15 +410,16 @@ static inline uint32_t be32_to_cpu(uint32_t v) { # define be32_to_cpu(x) ntohl((x)) # endif /* HAVE_X86 */ -static inline uint64_t be64_to_cpu(uint64_t v) { +static inline uint64_t be64_to_cpu(uint64_t v) +{ # ifdef NO_64BIT_MATH - /* use the make64 functions to do 64-bit math */ - v = make64(htonl(low32(v)),htonl(high32(v))); + /* use the make64 functions to do 64-bit math */ + v = make64(htonl(low32(v)),htonl(high32(v))); # else - /* use the native 64-bit math */ - v= (uint64_t)((be32_to_cpu((uint32_t)(v >> 32))) | (((uint64_t)be32_to_cpu((uint32_t)v)) << 32)); + /* use the native 64-bit math */ + v= (uint64_t)((be32_to_cpu((uint32_t)(v >> 32))) | (((uint64_t)be32_to_cpu((uint32_t)v)) << 32)); # endif - return v; + return v; } #endif /* ! SRTP_KERNEL_LINUX */ @@ -425,22 +427,22 @@ static inline uint64_t be64_to_cpu(uint64_t v) { #endif /* WORDS_BIGENDIAN */ /* - * functions manipulating bitvector_t + * functions manipulating bitvector_t * * A bitvector_t consists of an array of words and an integer * representing the number of significant bits stored in the array. * The bits are packed as follows: the least significant bit is that * of word[0], while the most significant bit is the nth most * significant bit of word[m], where length = bits_per_word * m + n. - * + * */ #define bits_per_word 32 #define bytes_per_word 4 typedef struct { - uint32_t length; - uint32_t *word; + uint32_t length; + uint32_t *word; } bitvector_t; diff --git a/thirdparties/iphone/include/srtp/ekt.h b/thirdparties/iphone/include/srtp/ekt.h index b0d888b..d7f9854 100755 --- a/thirdparties/iphone/include/srtp/ekt.h +++ b/thirdparties/iphone/include/srtp/ekt.h @@ -7,26 +7,26 @@ * Cisco Systems, Inc. */ /* - * + * * Copyright (c) 2001-2005 Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -45,12 +45,12 @@ /* - * EKT implementation strategy - * + * EKT implementation strategy + * * use stream_template approach * * in srtp_unprotect, when a new stream appears, check if template has - * EKT defined, and if it does, then apply EKT processing + * EKT defined, and if it does, then apply EKT processing * * question: will we want to allow key-sharing templates in addition * to EKT templates? could define a new ssrc_type_t that's associated @@ -88,10 +88,10 @@ ekt_octets_after_base_tag(ekt_stream_t ekt); */ typedef struct ekt_policy_ctx_t { - ekt_spi_t spi; /* security parameter index */ - uint8_t ekt_cipher_type; - uint8_t *ekt_key; - struct ekt_policy_ctx_t *next_ekt_policy; + ekt_spi_t spi; /* security parameter index */ + uint8_t ekt_cipher_type; + uint8_t *ekt_key; + struct ekt_policy_ctx_t *next_ekt_policy; } ekt_policy_ctx_t; @@ -101,11 +101,11 @@ typedef struct ekt_policy_ctx_t { */ typedef struct ekt_data_t { - ekt_spi_t spi; - uint8_t ekt_cipher_type; - aes_expanded_key_t ekt_enc_key; - aes_expanded_key_t ekt_dec_key; - struct ekt_data_t *next_ekt_data; + ekt_spi_t spi; + uint8_t ekt_cipher_type; + aes_expanded_key_t ekt_enc_key; + aes_expanded_key_t ekt_dec_key; + struct ekt_data_t *next_ekt_data; } ekt_data_t; /* @@ -116,39 +116,39 @@ typedef struct ekt_data_t { */ typedef struct ekt_stream_ctx_t { - ekt_data_t *data; - uint16_t isn; /* initial sequence number */ - uint8_t encrypted_master_key[SRTP_MAX_KEY_LEN]; + ekt_data_t *data; + uint16_t isn; /* initial sequence number */ + uint8_t encrypted_master_key[SRTP_MAX_KEY_LEN]; } ekt_stream_ctx_t; -err_status_t +err_status_t ekt_alloc(ekt_stream_t *stream_data, ekt_policy_t policy); err_status_t -ekt_stream_init(ekt_stream_t e, - ekt_spi_t spi, - void *ekt_key, - unsigned ekt_cipher_type); +ekt_stream_init(ekt_stream_t e, + ekt_spi_t spi, + void *ekt_key, + unsigned ekt_cipher_type); err_status_t ekt_stream_init_from_policy(ekt_stream_t e, ekt_policy_t p); - + err_status_t -srtp_stream_init_from_ekt(srtp_stream_t stream, - const void *srtcp_hdr, - unsigned pkt_octet_len); - +srtp_stream_init_from_ekt(srtp_stream_t stream, + const void *srtcp_hdr, + unsigned pkt_octet_len); + void ekt_write_data(ekt_stream_t ekt, - uint8_t *base_tag, - unsigned base_tag_len, - int *packet_len, - xtd_seq_num_t pkt_index); + uint8_t *base_tag, + unsigned base_tag_len, + int *packet_len, + xtd_seq_num_t pkt_index); /* * We handle EKT by performing some additional steps before @@ -160,14 +160,14 @@ ekt_write_data(ekt_stream_t ekt, */ err_status_t -ekt_tag_verification_preproces(uint8_t *pkt_tag, - uint8_t *pkt_tag_copy, - unsigned tag_len); +ekt_tag_verification_preproces(uint8_t *pkt_tag, + uint8_t *pkt_tag_copy, + unsigned tag_len); err_status_t ekt_tag_verification_postproces(uint8_t *pkt_tag, - uint8_t *pkt_tag_copy, - unsigned tag_len); + uint8_t *pkt_tag_copy, + unsigned tag_len); /* @@ -178,15 +178,15 @@ ekt_tag_verification_postproces(uint8_t *pkt_tag, * Master Key, the SRTP ROC, the Initial Sequence Number, and SPI * fields. The Base Authentication Tag field is set to the all-zero * value - * + * * When EKT is not used, this function is a no-op. - * + * */ err_status_t srtp_stream_srtcp_auth_tag_generation_preprocess(const srtp_stream_t *s, - uint8_t *pkt_tag, - unsigned pkt_octet_len); + uint8_t *pkt_tag, + unsigned pkt_octet_len); /* it's not clear that a tag_generation_postprocess function is needed */ diff --git a/thirdparties/iphone/include/srtp/err.h b/thirdparties/iphone/include/srtp/err.h index 1a6e170..9a318e5 100755 --- a/thirdparties/iphone/include/srtp/err.h +++ b/thirdparties/iphone/include/srtp/err.h @@ -1,32 +1,32 @@ /* * err.h - * + * * error status codes * * David A. McGrew * Cisco Systems, Inc. */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -50,9 +50,9 @@ /** * @defgroup Error Error Codes - * + * * Error status codes are represented by the enumeration err_status_t. - * + * * @{ */ @@ -66,31 +66,31 @@ * */ typedef enum { - err_status_ok = 0, /**< nothing to report */ - err_status_fail = 1, /**< unspecified failure */ - err_status_bad_param = 2, /**< unsupported parameter */ - err_status_alloc_fail = 3, /**< couldn't allocate memory */ - err_status_dealloc_fail = 4, /**< couldn't deallocate properly */ - err_status_init_fail = 5, /**< couldn't initialize */ - err_status_terminus = 6, /**< can't process as much data as requested */ - err_status_auth_fail = 7, /**< authentication failure */ - err_status_cipher_fail = 8, /**< cipher failure */ - err_status_replay_fail = 9, /**< replay check failed (bad index) */ - err_status_replay_old = 10, /**< replay check failed (index too old) */ - err_status_algo_fail = 11, /**< algorithm failed test routine */ - err_status_no_such_op = 12, /**< unsupported operation */ - err_status_no_ctx = 13, /**< no appropriate context found */ - err_status_cant_check = 14, /**< unable to perform desired validation */ - err_status_key_expired = 15, /**< can't use key any more */ - err_status_socket_err = 16, /**< error in use of socket */ - err_status_signal_err = 17, /**< error in use POSIX signals */ - err_status_nonce_bad = 18, /**< nonce check failed */ - err_status_read_fail = 19, /**< couldn't read data */ - err_status_write_fail = 20, /**< couldn't write data */ - err_status_parse_err = 21, /**< error pasring data */ - err_status_encode_err = 22, /**< error encoding data */ - err_status_semaphore_err = 23,/**< error while using semaphores */ - err_status_pfkey_err = 24 /**< error while using pfkey */ + err_status_ok = 0, /**< nothing to report */ + err_status_fail = 1, /**< unspecified failure */ + err_status_bad_param = 2, /**< unsupported parameter */ + err_status_alloc_fail = 3, /**< couldn't allocate memory */ + err_status_dealloc_fail = 4, /**< couldn't deallocate properly */ + err_status_init_fail = 5, /**< couldn't initialize */ + err_status_terminus = 6, /**< can't process as much data as requested */ + err_status_auth_fail = 7, /**< authentication failure */ + err_status_cipher_fail = 8, /**< cipher failure */ + err_status_replay_fail = 9, /**< replay check failed (bad index) */ + err_status_replay_old = 10, /**< replay check failed (index too old) */ + err_status_algo_fail = 11, /**< algorithm failed test routine */ + err_status_no_such_op = 12, /**< unsupported operation */ + err_status_no_ctx = 13, /**< no appropriate context found */ + err_status_cant_check = 14, /**< unable to perform desired validation */ + err_status_key_expired = 15, /**< can't use key any more */ + err_status_socket_err = 16, /**< error in use of socket */ + err_status_signal_err = 17, /**< error in use POSIX signals */ + err_status_nonce_bad = 18, /**< nonce check failed */ + err_status_read_fail = 19, /**< couldn't read data */ + err_status_write_fail = 20, /**< couldn't write data */ + err_status_parse_err = 21, /**< error pasring data */ + err_status_encode_err = 22, /**< error encoding data */ + err_status_semaphore_err = 23,/**< error while using semaphores */ + err_status_pfkey_err = 24 /**< error while using pfkey */ } err_status_t; /** @@ -98,15 +98,15 @@ typedef enum { */ typedef enum { - err_level_emergency = 0, - err_level_alert, - err_level_critical, - err_level_error, - err_level_warning, - err_level_notice, - err_level_info, - err_level_debug, - err_level_none + err_level_emergency = 0, + err_level_alert, + err_level_critical, + err_level_error, + err_level_warning, + err_level_notice, + err_level_info, + err_level_debug, + err_level_none } err_reporting_level_t; /* @@ -144,8 +144,8 @@ err_report(int priority, char *format, ...); */ typedef struct { - int on; /* 1 if debugging is on, 0 if it is off */ - char *name; /* printable name for debug module */ + int on; /* 1 if debugging is on, 0 if it is off */ + char *name; /* printable name for debug module */ } debug_module_t; #ifdef ENABLE_DEBUGGING diff --git a/thirdparties/iphone/include/srtp/getopt_s.h b/thirdparties/iphone/include/srtp/getopt_s.h index 2a6ece3..d3dc33d 100755 --- a/thirdparties/iphone/include/srtp/getopt_s.h +++ b/thirdparties/iphone/include/srtp/getopt_s.h @@ -7,26 +7,26 @@ * */ /* - * + * * Copyright (c) 2001-2006 Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -45,11 +45,11 @@ #ifndef GETOPT_S_H #define GETOPT_S_H -/* +/* * getopt_s(), optarg_s, and optind_s are small, locally defined * versions of the POSIX standard getopt() interface. */ - + int getopt_s(int argc, char * const argv[], const char *optstring); diff --git a/thirdparties/iphone/include/srtp/gf2_8.h b/thirdparties/iphone/include/srtp/gf2_8.h index 098d37c..bbbabdf 100755 --- a/thirdparties/iphone/include/srtp/gf2_8.h +++ b/thirdparties/iphone/include/srtp/gf2_8.h @@ -8,26 +8,26 @@ */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -54,13 +54,13 @@ typedef uint8_t gf2_8; #define gf2_8_field_polynomial 0x1B /* - * gf2_8_shift(x) returns + * gf2_8_shift(x) returns */ /* - * gf2_8_shift(z) returns the result of the GF(2^8) 'multiply by x' - * operation, using the field representation from AES; that is, the - * next gf2_8 value in the cyclic representation of that field. The + * gf2_8_shift(z) returns the result of the GF(2^8) 'multiply by x' + * operation, using the field representation from AES; that is, the + * next gf2_8 value in the cyclic representation of that field. The * value z should be an uint8_t. */ diff --git a/thirdparties/iphone/include/srtp/hmac.h b/thirdparties/iphone/include/srtp/hmac.h index 262c0e2..77468ab 100755 --- a/thirdparties/iphone/include/srtp/hmac.h +++ b/thirdparties/iphone/include/srtp/hmac.h @@ -8,26 +8,26 @@ * */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -50,9 +50,9 @@ #include "sha1.h" typedef struct { - uint8_t opad[64]; - sha1_ctx_t ctx; - sha1_ctx_t init_ctx; + uint8_t opad[64]; + sha1_ctx_t ctx; + sha1_ctx_t init_ctx; } hmac_ctx_t; err_status_t @@ -72,7 +72,7 @@ hmac_update(hmac_ctx_t *state, const uint8_t *message, int msg_octets); err_status_t hmac_compute(hmac_ctx_t *state, const void *message, - int msg_octets, int tag_len, uint8_t *result); + int msg_octets, int tag_len, uint8_t *result); #endif /* HMAC_H */ diff --git a/thirdparties/iphone/include/srtp/integers.h b/thirdparties/iphone/include/srtp/integers.h index 7010efd..91935eb 100755 --- a/thirdparties/iphone/include/srtp/integers.h +++ b/thirdparties/iphone/include/srtp/integers.h @@ -8,26 +8,26 @@ */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -125,7 +125,7 @@ extern uint32_t low32(uint64_t value); #define GET_32(addr) ((((unsigned char *) (addr))[0] << 24) | \ (((unsigned char *) (addr))[1] << 16) | \ (((unsigned char *) (addr))[2] << 8) | \ - (((unsigned char *) (addr))[3])) + (((unsigned char *) (addr))[3])) #else #define PUT_32(addr,value) \ { \ @@ -137,7 +137,7 @@ extern uint32_t low32(uint64_t value); #define GET_32(addr) ((((unsigned char *) (addr))[3] << 24) | \ (((unsigned char *) (addr))[2] << 16) | \ (((unsigned char *) (addr))[1] << 8) | \ - (((unsigned char *) (addr))[0])) + (((unsigned char *) (addr))[0])) #endif // WORDS_BIGENDIAN #else #define PUT_32(addr,value) *(((uint32_t *) (addr)) = (value) diff --git a/thirdparties/iphone/include/srtp/kernel_compat.h b/thirdparties/iphone/include/srtp/kernel_compat.h index 59d1898..36559f7 100755 --- a/thirdparties/iphone/include/srtp/kernel_compat.h +++ b/thirdparties/iphone/include/srtp/kernel_compat.h @@ -1,6 +1,6 @@ /* * kernel_compat.h - * + * * Compatibility stuff for building in kernel context where standard * C headers and library are not available. * @@ -8,26 +8,26 @@ * Ingate Systems AB */ /* - * + * * Copyright(c) 2005 Ingate Systems AB * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the author(s) nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -70,9 +70,9 @@ static inline int rand(void) { - uint32_t temp; - get_random_bytes(&temp, sizeof(temp)); - return temp % (RAND_MAX+1); + uint32_t temp; + get_random_bytes(&temp, sizeof(temp)); + return temp % (RAND_MAX+1); } /* stdio/stdlib implementation. */ diff --git a/thirdparties/iphone/include/srtp/key.h b/thirdparties/iphone/include/srtp/key.h index e7e0744..340547f 100755 --- a/thirdparties/iphone/include/srtp/key.h +++ b/thirdparties/iphone/include/srtp/key.h @@ -2,31 +2,31 @@ * key.h * * key usage limits enforcement - * + * * David A. Mcgrew * Cisco Systems, Inc. */ /* - * + * * Copyright (c) 2001-2006 Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -51,9 +51,9 @@ typedef struct key_limit_ctx_t *key_limit_t; typedef enum { - key_event_normal, - key_event_soft_limit, - key_event_hard_limit + key_event_normal, + key_event_soft_limit, + key_event_hard_limit } key_event_t; err_status_t @@ -68,15 +68,15 @@ key_limit_check(const key_limit_t key); key_event_t key_limit_update(key_limit_t key); -typedef enum { - key_state_normal, - key_state_past_soft_limit, - key_state_expired +typedef enum { + key_state_normal, + key_state_past_soft_limit, + key_state_expired } key_state_t; typedef struct key_limit_ctx_t { - xtd_seq_num_t num_left; - key_state_t state; + xtd_seq_num_t num_left; + key_state_t state; } key_limit_ctx_t; #endif /* KEY_H */ diff --git a/thirdparties/iphone/include/srtp/null_auth.h b/thirdparties/iphone/include/srtp/null_auth.h index 44f9a4a..54c0296 100755 --- a/thirdparties/iphone/include/srtp/null_auth.h +++ b/thirdparties/iphone/include/srtp/null_auth.h @@ -7,26 +7,26 @@ */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -48,7 +48,7 @@ #include "auth.h" typedef struct { - char foo; + char foo; } null_auth_ctx_t; err_status_t @@ -62,7 +62,7 @@ null_auth_init(null_auth_ctx_t *state, const uint8_t *key, int key_len); err_status_t null_auth_compute (null_auth_ctx_t *state, uint8_t *message, - int msg_octets, int tag_len, uint8_t *result); + int msg_octets, int tag_len, uint8_t *result); #endif /* NULL_AUTH_H */ diff --git a/thirdparties/iphone/include/srtp/null_cipher.h b/thirdparties/iphone/include/srtp/null_cipher.h index 39da59a..63d272d 100755 --- a/thirdparties/iphone/include/srtp/null_cipher.h +++ b/thirdparties/iphone/include/srtp/null_cipher.h @@ -9,26 +9,26 @@ */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -52,7 +52,7 @@ #include "cipher.h" typedef struct { - char foo ;/* empty, for now */ + char foo ;/* empty, for now */ } null_cipher_ctx_t; @@ -66,15 +66,15 @@ null_cipher_init(null_cipher_ctx_t *c, const uint8_t *key, int key_len); err_status_t null_cipher_set_segment(null_cipher_ctx_t *c, - unsigned long segment_index); + unsigned long segment_index); err_status_t null_cipher_encrypt(null_cipher_ctx_t *c, - unsigned char *buf, unsigned int *bytes_to_encr); + unsigned char *buf, unsigned int *bytes_to_encr); err_status_t null_cipher_encrypt_aligned(null_cipher_ctx_t *c, - unsigned char *buf, int bytes_to_encr); + unsigned char *buf, int bytes_to_encr); #endif /* NULL_CIPHER_H */ diff --git a/thirdparties/iphone/include/srtp/prng.h b/thirdparties/iphone/include/srtp/prng.h index fb96b5e..148b07a 100755 --- a/thirdparties/iphone/include/srtp/prng.h +++ b/thirdparties/iphone/include/srtp/prng.h @@ -21,10 +21,10 @@ */ typedef struct { - v128_t state; /* state data */ - aes_expanded_key_t key; /* secret key */ - uint32_t octet_count; /* number of octets output since last init */ - rand_source_func_t rand; /* random source for re-initialization */ + v128_t state; /* state data */ + aes_expanded_key_t key; /* secret key */ + uint32_t octet_count; /* number of octets output since last init */ + rand_source_func_t rand; /* random source for re-initialization */ } x917_prng_t; err_status_t @@ -39,9 +39,9 @@ x917_prng_get_octet_string(uint8_t *dest, uint32_t len); */ typedef struct { - uint32_t octet_count; /* number of octets output since last init */ - aes_icm_ctx_t state; /* state data */ - rand_source_func_t rand; /* random source for re-initialization */ + uint32_t octet_count; /* number of octets output since last init */ + aes_icm_ctx_t state; /* state data */ + rand_source_func_t rand; /* random source for re-initialization */ } ctr_prng_t; err_status_t diff --git a/thirdparties/iphone/include/srtp/rand_source.h b/thirdparties/iphone/include/srtp/rand_source.h index b4c2110..d2e52ce 100755 --- a/thirdparties/iphone/include/srtp/rand_source.h +++ b/thirdparties/iphone/include/srtp/rand_source.h @@ -7,26 +7,26 @@ * Cisco Systems, Inc. */ /* - * + * * Copyright(c) 2001-2006 Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -60,7 +60,7 @@ rand_source_init(void); * and returns an error code. This error code should be checked, * and if a failure is reported, the data in the buffer MUST NOT * be used. - * + * * warning: If the return code is not checked, then non-random * data may inadvertently be used. * @@ -77,7 +77,7 @@ rand_source_get_octet_string(void *dest, uint32_t length); err_status_t rand_source_deinit(void); -/* +/* * function prototype for a random source function * * A rand_source_func_t writes num_octets at the location indicated by @@ -86,6 +86,6 @@ rand_source_deinit(void); */ typedef err_status_t (*rand_source_func_t) - (void *dest, uint32_t num_octets); +(void *dest, uint32_t num_octets); #endif /* RAND_SOURCE */ diff --git a/thirdparties/iphone/include/srtp/rdb.h b/thirdparties/iphone/include/srtp/rdb.h index 2ccb144..2432fae 100755 --- a/thirdparties/iphone/include/srtp/rdb.h +++ b/thirdparties/iphone/include/srtp/rdb.h @@ -21,11 +21,11 @@ */ typedef struct { - uint32_t window_start; /* packet index of the first bit in bitmask */ - v128_t bitmask; + uint32_t window_start; /* packet index of the first bit in bitmask */ + v128_t bitmask; } rdb_t; -#define rdb_bits_in_bitmask (8*sizeof(v128_t)) +#define rdb_bits_in_bitmask (8*sizeof(v128_t)) /* * rdb init @@ -49,7 +49,7 @@ rdb_init(rdb_t *rdb); */ err_status_t -rdb_check(const rdb_t *rdb, uint32_t rdb_index); +rdb_check(const rdb_t *rdb, uint32_t rdb_index); /* * rdb_add_index @@ -64,18 +64,18 @@ err_status_t rdb_add_index(rdb_t *rdb, uint32_t rdb_index); /* - * the functions rdb_increment() and rdb_get_value() are for use by + * the functions rdb_increment() and rdb_get_value() are for use by * senders, not receivers - DO NOT use these functions on the same * rdb_t upon which rdb_add_index is used! */ /* - * rdb_increment(db) increments the sequence number in db, if it is + * rdb_increment(db) increments the sequence number in db, if it is * not too high * * return values: - * + * * err_status_ok no problem * err_status_key_expired sequence number too high * @@ -91,4 +91,4 @@ uint32_t rdb_get_value(const rdb_t *rdb); -#endif /* REPLAY_DB_H */ +#endif /* REPLAY_DB_H */ diff --git a/thirdparties/iphone/include/srtp/rdbx.h b/thirdparties/iphone/include/srtp/rdbx.h index 146fb42..88055c2 100755 --- a/thirdparties/iphone/include/srtp/rdbx.h +++ b/thirdparties/iphone/include/srtp/rdbx.h @@ -14,7 +14,7 @@ #include "datatypes.h" #include "err.h" -/* #define ROC_TEST */ +/* #define ROC_TEST */ #ifndef ROC_TEST @@ -33,7 +33,7 @@ typedef uint16_t rollover_counter_t; /* 16 bit rollover counter */ /* * An xtd_seq_num_t is a 64-bit unsigned integer used as an 'extended' - * sequence number. + * sequence number. */ typedef uint64_t xtd_seq_num_t; @@ -45,8 +45,8 @@ typedef uint64_t xtd_seq_num_t; */ typedef struct { - xtd_seq_num_t index; - bitvector_t bitmask; + xtd_seq_num_t index; + bitvector_t bitmask; } rdbx_t; @@ -73,7 +73,7 @@ rdbx_dealloc(rdbx_t *rdbx); /* * rdbx_estimate_index(rdbx, guess, s) - * + * * given an rdbx and a sequence number s (from a newly arrived packet), * sets the contents of *guess to contain the best guess of the packet * index to which s corresponds, and returns the difference between @@ -82,8 +82,8 @@ rdbx_dealloc(rdbx_t *rdbx); int rdbx_estimate_index(const rdbx_t *rdbx, - xtd_seq_num_t *guess, - sequence_number_t s); + xtd_seq_num_t *guess, + sequence_number_t s); /* * rdbx_check(rdbx, delta); @@ -98,7 +98,7 @@ rdbx_check(const rdbx_t *rdbx, int difference); /* * replay_add_index(rdbx, delta) - * + * * adds the xtd_seq_num_t at rdbx->window_start + delta to replay_db * (and does *not* check if that xtd_seq_num_t appears in db) * @@ -116,7 +116,7 @@ rdbx_add_index(rdbx_t *rdbx, int delta); * to have the rollover counter value roc. If that value is less than * the current rollover counter value, then the function returns * err_status_replay_old; otherwise, err_status_ok is returned. - * + * */ err_status_t @@ -125,7 +125,7 @@ rdbx_set_roc(rdbx_t *rdbx, uint32_t roc); /* * rdbx_get_roc(rdbx) returns the value of the rollover counter for * the rdbx_t pointed to by rdbx - * + * */ xtd_seq_num_t @@ -160,7 +160,7 @@ index_advance(xtd_seq_num_t *pi, sequence_number_t s); /* * index_guess(local, guess, s) - * + * * given a xtd_seq_num_t local (which represents the highest * known-to-be-good index) and a sequence number s (from a newly * arrived packet), sets the contents of *guess to contain the best @@ -170,8 +170,8 @@ index_advance(xtd_seq_num_t *pi, sequence_number_t s); int index_guess(const xtd_seq_num_t *local, - xtd_seq_num_t *guess, - sequence_number_t s); + xtd_seq_num_t *guess, + sequence_number_t s); #endif /* RDBX_H */ diff --git a/thirdparties/iphone/include/srtp/rtp.h b/thirdparties/iphone/include/srtp/rtp.h index 0e0119c..9b97ab6 100755 --- a/thirdparties/iphone/include/srtp/rtp.h +++ b/thirdparties/iphone/include/srtp/rtp.h @@ -1,6 +1,6 @@ /* * rtp.h - * + * * rtp interface for srtp reference implementation * * David A. McGrew @@ -15,26 +15,26 @@ */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -73,12 +73,12 @@ int rtp_recvfrom(rtp_receiver_t receiver, void *msg, int *len); int -rtp_receiver_init(rtp_receiver_t rcvr, int sock, - struct sockaddr_in addr, unsigned int ssrc); +rtp_receiver_init(rtp_receiver_t rcvr, int sock, + struct sockaddr_in addr, unsigned int ssrc); int -rtp_sender_init(rtp_sender_t sender, int sock, - struct sockaddr_in addr, unsigned int ssrc); +rtp_sender_init(rtp_sender_t sender, int sock, + struct sockaddr_in addr, unsigned int ssrc); /* * srtp_sender_init(...) initializes an rtp_sender_t @@ -86,17 +86,17 @@ rtp_sender_init(rtp_sender_t sender, int sock, int srtp_sender_init(rtp_sender_t rtp_ctx, /* structure to be init'ed */ - struct sockaddr_in name, /* socket name */ - sec_serv_t security_services, /* sec. servs. to be used */ - unsigned char *input_key /* master key/salt in hex */ - ); + struct sockaddr_in name, /* socket name */ + sec_serv_t security_services, /* sec. servs. to be used */ + unsigned char *input_key /* master key/salt in hex */ + ); int srtp_receiver_init(rtp_receiver_t rtp_ctx, /* structure to be init'ed */ - struct sockaddr_in name, /* socket name */ - sec_serv_t security_services, /* sec. servs. to be used */ - unsigned char *input_key /* master key/salt in hex */ - ); + struct sockaddr_in name, /* socket name */ + sec_serv_t security_services, /* sec. servs. to be used */ + unsigned char *input_key /* master key/salt in hex */ + ); int @@ -112,13 +112,13 @@ int rtp_receiver_deinit_srtp(rtp_receiver_t sender); -rtp_sender_t +rtp_sender_t rtp_sender_alloc(void); void rtp_sender_dealloc(rtp_sender_t rtp_ctx); -rtp_receiver_t +rtp_receiver_t rtp_receiver_alloc(void); void @@ -130,7 +130,7 @@ rtp_receiver_dealloc(rtp_receiver_t rtp_ctx); */ #define RTP_HEADER_LEN 12 -/* +/* * RTP_MAX_BUF_LEN defines the largest RTP packet in the rtp.c implementation */ #define RTP_MAX_BUF_LEN 16384 diff --git a/thirdparties/iphone/include/srtp/rtp_priv.h b/thirdparties/iphone/include/srtp/rtp_priv.h index 1421386..088cdbe 100755 --- a/thirdparties/iphone/include/srtp/rtp_priv.h +++ b/thirdparties/iphone/include/srtp/rtp_priv.h @@ -7,26 +7,26 @@ * Cisco Systems, Inc. */ /* - * + * * Copyright (c) 2001-2006 Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -52,22 +52,22 @@ typedef srtp_hdr_t rtp_hdr_t; typedef struct { - srtp_hdr_t header; - char body[RTP_MAX_BUF_LEN]; + srtp_hdr_t header; + char body[RTP_MAX_BUF_LEN]; } rtp_msg_t; typedef struct rtp_sender_ctx_t { - rtp_msg_t message; - int socket; - srtp_ctx_t *srtp_ctx; - struct sockaddr_in addr; /* reciever's address */ + rtp_msg_t message; + int socket; + srtp_ctx_t *srtp_ctx; + struct sockaddr_in addr; /* reciever's address */ } rtp_sender_ctx_t; typedef struct rtp_receiver_ctx_t { - rtp_msg_t message; - int socket; - srtp_ctx_t *srtp_ctx; - struct sockaddr_in addr; /* receiver's address */ + rtp_msg_t message; + int socket; + srtp_ctx_t *srtp_ctx; + struct sockaddr_in addr; /* receiver's address */ } rtp_receiver_ctx_t; diff --git a/thirdparties/iphone/include/srtp/sha1.h b/thirdparties/iphone/include/srtp/sha1.h index e3af4d4..65ecee4 100755 --- a/thirdparties/iphone/include/srtp/sha1.h +++ b/thirdparties/iphone/include/srtp/sha1.h @@ -9,26 +9,26 @@ */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -51,17 +51,17 @@ #include "datatypes.h" typedef struct { - uint32_t H[5]; /* state vector */ - uint32_t M[16]; /* message buffer */ - int octets_in_buffer; /* octets of message in buffer */ - uint32_t num_bits_in_msg; /* total number of bits in message */ + uint32_t H[5]; /* state vector */ + uint32_t M[16]; /* message buffer */ + int octets_in_buffer; /* octets of message in buffer */ + uint32_t num_bits_in_msg; /* total number of bits in message */ } sha1_ctx_t; /* * sha1(&ctx, msg, len, output) hashes the len octets starting at msg * into the SHA1 context, then writes the result to the 20 octets at * output - * + * */ void @@ -69,10 +69,10 @@ sha1(const uint8_t *message, int octets_in_msg, uint32_t output[5]); /* * sha1_init(&ctx) initializes the SHA1 context ctx - * + * * sha1_update(&ctx, msg, len) hashes the len octets starting at msg * into the SHA1 context - * + * * sha1_final(&ctx, output) performs the final processing of the SHA1 * context and writes the result to the 20 octets at output * @@ -90,7 +90,7 @@ sha1_final(sha1_ctx_t *ctx, uint32_t output[5]); /* * The sha1_core function is INTERNAL to SHA-1, but it is declared * here because it is also used by the cipher SEAL 3.0 in its key - * setup algorithm. + * setup algorithm. */ /* @@ -104,5 +104,5 @@ sha1_final(sha1_ctx_t *ctx, uint32_t output[5]); void sha1_core(const uint32_t M[16], uint32_t hash_value[5]); - + #endif /* SHA1_H */ diff --git a/thirdparties/iphone/include/srtp/srtp.h b/thirdparties/iphone/include/srtp/srtp.h index eb95e7d..6f6fc9c 100755 --- a/thirdparties/iphone/include/srtp/srtp.h +++ b/thirdparties/iphone/include/srtp/srtp.h @@ -7,26 +7,26 @@ * Cisco Systems, Inc. */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -50,7 +50,7 @@ extern "C" { #endif -#include "crypto_kernel.h" +#include "crypto_kernel.h" /** * @defgroup SRTP Secure RTP @@ -76,7 +76,7 @@ extern "C" { * SRTP_MAX_TAG_LEN is the maximum tag length supported by libSRTP */ -#define SRTP_MAX_TAG_LEN 12 +#define SRTP_MAX_TAG_LEN 12 /** * SRTP_MAX_TRAILER_LEN is the maximum length of the SRTP trailer @@ -86,85 +86,86 @@ extern "C" { * * @brief the maximum number of octets added by srtp_protect(). */ -#define SRTP_MAX_TRAILER_LEN SRTP_MAX_TAG_LEN +#define SRTP_MAX_TRAILER_LEN SRTP_MAX_TAG_LEN -/* +/* * nota bene: since libSRTP doesn't support the use of the MKI, the * SRTP_MAX_TRAILER_LEN value is just the maximum tag length */ /** - * @brief sec_serv_t describes a set of security services. + * @brief sec_serv_t describes a set of security services. * * A sec_serv_t enumeration is used to describe the particular * security services that will be applied by a particular crypto - * policy (or other mechanism). + * policy (or other mechanism). */ typedef enum { - sec_serv_none = 0, /**< no services */ - sec_serv_conf = 1, /**< confidentiality */ - sec_serv_auth = 2, /**< authentication */ - sec_serv_conf_and_auth = 3 /**< confidentiality and authentication */ -} sec_serv_t; + sec_serv_none = 0, /**< no services */ + sec_serv_conf = 1, /**< confidentiality */ + sec_serv_auth = 2, /**< authentication */ + sec_serv_conf_and_auth = 3 /**< confidentiality and authentication */ +} +sec_serv_t; -/** +/** * @brief crypto_policy_t describes a particular crypto policy that * can be applied to an SRTP stream. * * A crypto_policy_t describes a particular cryptographic policy that * can be applied to an SRTP or SRTCP stream. An SRTP session policy - * consists of a list of these policies, one for each SRTP stream + * consists of a list of these policies, one for each SRTP stream * in the session. */ typedef struct crypto_policy_t { - cipher_type_id_t cipher_type; /**< An integer representing + cipher_type_id_t cipher_type; /**< An integer representing * the type of cipher. */ - int cipher_key_len; /**< The length of the cipher key + int cipher_key_len; /**< The length of the cipher key * in octets. */ - auth_type_id_t auth_type; /**< An integer representing the + auth_type_id_t auth_type; /**< An integer representing the * authentication function. */ - int auth_key_len; /**< The length of the authentication + int auth_key_len; /**< The length of the authentication * function key in octets. */ - int auth_tag_len; /**< The length of the authentication + int auth_tag_len; /**< The length of the authentication * tag in octets. */ - sec_serv_t sec_serv; /**< The flag indicating the security + sec_serv_t sec_serv; /**< The flag indicating the security * services to be applied. */ } crypto_policy_t; -/** +/** * @brief ssrc_type_t describes the type of an SSRC. - * + * * An ssrc_type_t enumeration is used to indicate a type of SSRC. See * @ref srtp_policy_t for more informataion. */ -typedef enum { - ssrc_undefined = 0, /**< Indicates an undefined SSRC type. */ - ssrc_specific = 1, /**< Indicates a specific SSRC value */ - ssrc_any_inbound = 2, /**< Indicates any inbound SSRC value +typedef enum { + ssrc_undefined = 0, /**< Indicates an undefined SSRC type. */ + ssrc_specific = 1, /**< Indicates a specific SSRC value */ + ssrc_any_inbound = 2, /**< Indicates any inbound SSRC value (i.e. a value that is used in the function srtp_unprotect()) */ - ssrc_any_outbound = 3 /**< Indicates any outbound SSRC value - (i.e. a value that is used in the + ssrc_any_outbound = 3 /**< Indicates any outbound SSRC value + (i.e. a value that is used in the function srtp_protect()) */ } ssrc_type_t; /** * @brief An ssrc_t represents a particular SSRC value, or a `wildcard' SSRC. - * + * * An ssrc_t represents a particular SSRC value (if its type is * ssrc_specific), or a wildcard SSRC value that will match all * outbound SSRCs (if its type is ssrc_any_outbound) or all inbound - * SSRCs (if its type is ssrc_any_inbound). + * SSRCs (if its type is ssrc_any_inbound). * */ -typedef struct { - ssrc_type_t type; /**< The type of this particular SSRC */ - unsigned int value; /**< The value of this SSRC, if it is not a wildcard */ +typedef struct { + ssrc_type_t type; /**< The type of this particular SSRC */ + unsigned int value; /**< The value of this SSRC, if it is not a wildcard */ } ssrc_t; @@ -180,8 +181,8 @@ typedef struct ekt_policy_ctx_t *ekt_policy_t; typedef struct ekt_stream_ctx_t *ekt_stream_t; -/** - * @brief represents the policy for an SRTP session. +/** + * @brief represents the policy for an SRTP session. * * A single srtp_policy_t struct represents the policy for a single * SRTP stream, and a linked list of these elements represents the @@ -190,7 +191,7 @@ typedef struct ekt_stream_ctx_t *ekt_stream_t; * master key for that stream, the SSRC describing that stream, or a * flag indicating a `wildcard' SSRC value, and a `next' field that * holds a pointer to the next element in the list of policy elements, - * or NULL if it is the last element. + * or NULL if it is the last element. * * The wildcard value SSRC_ANY_INBOUND matches any SSRC from an * inbound stream that for which there is no explicit SSRC entry in @@ -201,33 +202,33 @@ typedef struct ekt_stream_ctx_t *ekt_stream_t; * is intentional, and it allows libSRTP to ensure that no security * lapses result from accidental re-use of SSRC values during key * sharing. - * - * + * + * * @warning The final element of the list @b must have its `next' pointer * set to NULL. */ typedef struct srtp_policy_t { - ssrc_t ssrc; /**< The SSRC value of stream, or the - * flags SSRC_ANY_INBOUND or + ssrc_t ssrc; /**< The SSRC value of stream, or the + * flags SSRC_ANY_INBOUND or * SSRC_ANY_OUTBOUND if key sharing * is used for this policy element. */ - crypto_policy_t rtp; /**< SRTP crypto policy. */ - crypto_policy_t rtcp; /**< SRTCP crypto policy. */ - unsigned char *key; /**< Pointer to the SRTP master key for + crypto_policy_t rtp; /**< SRTP crypto policy. */ + crypto_policy_t rtcp; /**< SRTCP crypto policy. */ + unsigned char *key; /**< Pointer to the SRTP master key for * this stream. */ - ekt_policy_t ekt; /**< Pointer to the EKT policy structure - * for this stream (if any) */ - unsigned long window_size; /**< The window size to use for replay + ekt_policy_t ekt; /**< Pointer to the EKT policy structure + * for this stream (if any) */ + unsigned long window_size; /**< The window size to use for replay * protection. */ - int allow_repeat_tx; /**< Whether retransmissions of + int allow_repeat_tx; /**< Whether retransmissions of * packets with the same sequence number * are allowed. (Note that such repeated * transmissions must have the same RTP * payload, or a severe security weakness * is introduced!) */ - struct srtp_policy_t *next; /**< Pointer to next stream policy. */ + struct srtp_policy_t *next; /**< Pointer to next stream policy. */ } srtp_policy_t; @@ -237,7 +238,7 @@ typedef struct srtp_policy_t { * @brief An srtp_t points to an SRTP session structure. * * The typedef srtp_t is a pointer to a structure that represents - * an SRTP session. This datatype is intentially opaque in + * an SRTP session. This datatype is intentially opaque in * order to separate the interface from the implementation. * * An SRTP session consists of all of the traffic sent to the RTP and @@ -254,11 +255,11 @@ typedef struct srtp_ctx_t *srtp_t; * * The typedef srtp_stream_t is a pointer to a structure that * represents an SRTP stream. This datatype is intentionally - * opaque in order to separate the interface from the implementation. - * + * opaque in order to separate the interface from the implementation. + * * An SRTP stream consists of all of the traffic sent to an SRTP * session by a single participant. A session can be viewed as - * a set of streams. + * a set of streams. * */ typedef struct srtp_stream_ctx_t *srtp_stream_t; @@ -266,7 +267,7 @@ typedef struct srtp_stream_ctx_t *srtp_stream_t; /** - * @brief srtp_init() initializes the srtp library. + * @brief srtp_init() initializes the srtp library. * * @warning This function @b must be called before any other srtp * functions. @@ -287,14 +288,14 @@ srtp_shutdown(void); /** * @brief srtp_protect() is the Secure RTP sender-side packet processing * function. - * + * * The function call srtp_protect(ctx, rtp_hdr, len_ptr) applies SRTP * protection to the RTP packet rtp_hdr (which has length *len_ptr) using * the SRTP context ctx. If err_status_ok is returned, then rtp_hdr * points to the resulting SRTP packet and *len_ptr is the number of * octets in that packet; otherwise, no assumptions should be made * about the value of either data elements. - * + * * The sequence numbers of the RTP packets presented to this function * need not be consecutive, but they @b must be out of order by less * than 2^15 = 32,768 packets. @@ -314,7 +315,7 @@ srtp_shutdown(void); * complete SRTP packet after the call, if err_status_ok was returned. * Otherwise, the value of the data to which it points is undefined. * - * @return + * @return * - err_status_ok no problems * - err_status_replay_fail rtp sequence number was non-increasing * - @e other failure in cryptographic mechanisms @@ -322,7 +323,7 @@ srtp_shutdown(void); err_status_t srtp_protect(srtp_t ctx, void *rtp_hdr, int *len_ptr); - + /** * @brief srtp_unprotect() is the Secure RTP receiver-side packet * processing function. @@ -333,12 +334,12 @@ srtp_protect(srtp_t ctx, void *rtp_hdr, int *len_ptr); * err_status_ok is returned, then srtp_hdr points to the resulting * RTP packet and *len_ptr is the number of octets in that packet; * otherwise, no assumptions should be made about the value of either - * data elements. - * + * data elements. + * * The sequence numbers of the RTP packets presented to this function * need not be consecutive, but they @b must be out of order by less * than 2^15 = 32,768 packets. - * + * * @warning This function assumes that the SRTP packet is aligned on a * 32-bit boundary. * @@ -355,9 +356,9 @@ srtp_protect(srtp_t ctx, void *rtp_hdr, int *len_ptr); * complete rtp packet after the call, if err_status_ok was returned. * Otherwise, the value of the data to which it points is undefined. * - * @return + * @return * - err_status_ok if the RTP packet is valid. - * - err_status_auth_fail if the SRTP packet failed the message + * - err_status_auth_fail if the SRTP packet failed the message * authentication check. * - err_status_replay_fail if the SRTP packet is a replay (e.g. packet has * already been processed and accepted). @@ -377,14 +378,14 @@ srtp_unprotect(srtp_t ctx, void *srtp_hdr, int *len_ptr); * key. * * @param session is the SRTP session to which the policy is to be added. - * + * * @param policy is the srtp_policy_t struct that describes the policy * for the session. The struct may be a single element, or it may be * the head of a list, in which case each element of the list is * processed. It may also be NULL, in which case streams should be added * later using srtp_add_stream(). The final element of the list @b must * have its `next' field set to NULL. - * + * * @return * - err_status_ok if creation succeded. * - err_status_alloc_fail if allocation failed. @@ -398,7 +399,7 @@ srtp_create(srtp_t *session, const srtp_policy_t *policy); /** * @brief srtp_add_stream() allocates and initializes an SRTP stream * within a given SRTP session. - * + * * The function call srtp_add_stream(session, policy) allocates and * initializes a new SRTP stream within a given, previously created * session, applying the policy given as the other argument to that @@ -411,13 +412,13 @@ srtp_create(srtp_t *session, const srtp_policy_t *policy); */ err_status_t -srtp_add_stream(srtp_t session, - const srtp_policy_t *policy); +srtp_add_stream(srtp_t session, + const srtp_policy_t *policy); /** * @brief srtp_remove_stream() deallocates an SRTP stream. - * + * * The function call srtp_remove_stream(session, ssrc) removes * the SRTP stream with the SSRC value ssrc from the SRTP session * context given by the argument session. @@ -429,7 +430,7 @@ srtp_add_stream(srtp_t session, * * @warning Wildcard SSRC values cannot be removed from a * session. - * + * * @return * - err_status_ok if the stream deallocation succeded. * - [other] otherwise. @@ -443,8 +444,8 @@ srtp_remove_stream(srtp_t session, unsigned int ssrc); * @brief crypto_policy_set_rtp_default() sets a crypto policy * structure to the SRTP default policy for RTP protection. * - * @param p is a pointer to the policy structure to be set - * + * @param p is a pointer to the policy structure to be set + * * The function call crypto_policy_set_rtp_default(&p) sets the * crypto_policy_t at location p to the SRTP default policy for RTP * protection, as defined in the specification. This function is a @@ -453,9 +454,9 @@ srtp_remove_stream(srtp_t session, unsigned int ssrc); * with this function call. Doing so may allow your code to be * forward compatible with later versions of libSRTP that include more * elements in the crypto_policy_t datatype. - * + * * @return void. - * + * */ void @@ -465,8 +466,8 @@ crypto_policy_set_rtp_default(crypto_policy_t *p); * @brief crypto_policy_set_rtcp_default() sets a crypto policy * structure to the SRTP default policy for RTCP protection. * - * @param p is a pointer to the policy structure to be set - * + * @param p is a pointer to the policy structure to be set + * * The function call crypto_policy_set_rtcp_default(&p) sets the * crypto_policy_t at location p to the SRTP default policy for RTCP * protection, as defined in the specification. This function is a @@ -475,9 +476,9 @@ crypto_policy_set_rtp_default(crypto_policy_t *p); * with this function call. Doing so may allow your code to be * forward compatible with later versions of libSRTP that include more * elements in the crypto_policy_t datatype. - * + * * @return void. - * + * */ void @@ -487,15 +488,15 @@ crypto_policy_set_rtcp_default(crypto_policy_t *p); * @brief crypto_policy_set_aes_cm_128_hmac_sha1_80() sets a crypto * policy structure to the SRTP default policy for RTP protection. * - * @param p is a pointer to the policy structure to be set - * + * @param p is a pointer to the policy structure to be set + * * The function crypto_policy_set_aes_cm_128_hmac_sha1_80() is a * synonym for crypto_policy_set_rtp_default(). It conforms to the * naming convention used in RFC 4568 (SDP Security Descriptions for * Media Streams). - * + * * @return void. - * + * */ #define crypto_policy_set_aes_cm_128_hmac_sha1_80(p) crypto_policy_set_rtp_default(p) @@ -505,8 +506,8 @@ crypto_policy_set_rtcp_default(crypto_policy_t *p); * @brief crypto_policy_set_aes_cm_128_hmac_sha1_32() sets a crypto * policy structure to a short-authentication tag policy * - * @param p is a pointer to the policy structure to be set - * + * @param p is a pointer to the policy structure to be set + * * The function call crypto_policy_set_aes_cm_128_hmac_sha1_32(&p) * sets the crypto_policy_t at location p to use policy * AES_CM_128_HMAC_SHA1_32 as defined in RFC 4568. @@ -516,7 +517,7 @@ crypto_policy_set_rtcp_default(crypto_policy_t *p); * considered adequate only for protecting audio and video media that * use a stateless playback function. See Section 7.5 of RFC 3711 * (http://www.ietf.org/rfc/rfc3711.txt). - * + * * This function is a convenience that helps to avoid dealing directly * with the policy data structure. You are encouraged to initialize * policy elements with this function call. Doing so may allow your @@ -529,7 +530,7 @@ crypto_policy_set_rtcp_default(crypto_policy_t *p); * (http://www.ietf.org/rfc/rfc3711.txt). * * @return void. - * + * */ void @@ -541,14 +542,14 @@ crypto_policy_set_aes_cm_128_hmac_sha1_32(crypto_policy_t *p); * @brief crypto_policy_set_aes_cm_128_null_auth() sets a crypto * policy structure to an encryption-only policy * - * @param p is a pointer to the policy structure to be set - * + * @param p is a pointer to the policy structure to be set + * * The function call crypto_policy_set_aes_cm_128_null_auth(&p) sets * the crypto_policy_t at location p to use the SRTP default cipher * (AES-128 Counter Mode), but to use no authentication method. This * policy is NOT RECOMMENDED unless it is unavoidable; see Section 7.5 * of RFC 3711 (http://www.ietf.org/rfc/rfc3711.txt). - * + * * This function is a convenience that helps to avoid dealing directly * with the policy data structure. You are encouraged to initialize * policy elements with this function call. Doing so may allow your @@ -560,7 +561,7 @@ crypto_policy_set_aes_cm_128_hmac_sha1_32(crypto_policy_t *p); * Section 7.5 of RFC 3711 (http://www.ietf.org/rfc/rfc3711.txt). * * @return void. - * + * */ void @@ -571,14 +572,14 @@ crypto_policy_set_aes_cm_128_null_auth(crypto_policy_t *p); * @brief crypto_policy_set_null_cipher_hmac_sha1_80() sets a crypto * policy structure to an authentication-only policy * - * @param p is a pointer to the policy structure to be set - * + * @param p is a pointer to the policy structure to be set + * * The function call crypto_policy_set_null_cipher_hmac_sha1_80(&p) * sets the crypto_policy_t at location p to use HMAC-SHA1 with an 80 * bit authentication tag to provide message authentication, but to * use no encryption. This policy is NOT RECOMMENDED for SRTP unless - * there is a requirement to forego encryption. - * + * there is a requirement to forego encryption. + * * This function is a convenience that helps to avoid dealing directly * with the policy data structure. You are encouraged to initialize * policy elements with this function call. Doing so may allow your @@ -586,10 +587,10 @@ crypto_policy_set_aes_cm_128_null_auth(crypto_policy_t *p); * include more elements in the crypto_policy_t datatype. * * @warning This policy is NOT RECOMMENDED for SRTP unless there is a - * requirement to forego encryption. + * requirement to forego encryption. * * @return void. - * + * */ void @@ -598,18 +599,18 @@ crypto_policy_set_null_cipher_hmac_sha1_80(crypto_policy_t *p); /** * @brief crypto_policy_set_aes_cm_256_hmac_sha1_80() sets a crypto - * policy structure to a encryption and authentication policy using AES-256 + * policy structure to a encryption and authentication policy using AES-256 * for RTP protection. * - * @param p is a pointer to the policy structure to be set - * + * @param p is a pointer to the policy structure to be set + * * The function call crypto_policy_set_aes_cm_256_hmac_sha1_80(&p) * sets the crypto_policy_t at location p to use policy * AES_CM_256_HMAC_SHA1_80 as defined in * draft-ietf-avt-srtp-big-aes-03.txt. This policy uses AES-256 * Counter Mode encryption and HMAC-SHA1 authentication, with an 80 bit * authentication tag. - * + * * This function is a convenience that helps to avoid dealing directly * with the policy data structure. You are encouraged to initialize * policy elements with this function call. Doing so may allow your @@ -617,7 +618,7 @@ crypto_policy_set_null_cipher_hmac_sha1_80(crypto_policy_t *p); * include more elements in the crypto_policy_t datatype. * * @return void. - * + * */ void crypto_policy_set_aes_cm_256_hmac_sha1_80(crypto_policy_t *p); @@ -628,8 +629,8 @@ void crypto_policy_set_aes_cm_256_hmac_sha1_80(crypto_policy_t *p); * policy structure to a short-authentication tag policy using AES-256 * encryption. * - * @param p is a pointer to the policy structure to be set - * + * @param p is a pointer to the policy structure to be set + * * The function call crypto_policy_set_aes_cm_256_hmac_sha1_32(&p) * sets the crypto_policy_t at location p to use policy * AES_CM_256_HMAC_SHA1_32 as defined in @@ -639,7 +640,7 @@ void crypto_policy_set_aes_cm_256_hmac_sha1_80(crypto_policy_t *p); * considered adequate only for protecting audio and video media that * use a stateless playback function. See Section 7.5 of RFC 3711 * (http://www.ietf.org/rfc/rfc3711.txt). - * + * * This function is a convenience that helps to avoid dealing directly * with the policy data structure. You are encouraged to initialize * policy elements with this function call. Doing so may allow your @@ -652,7 +653,7 @@ void crypto_policy_set_aes_cm_256_hmac_sha1_80(crypto_policy_t *p); * (http://www.ietf.org/rfc/rfc3711.txt). * * @return void. - * + * */ void @@ -662,7 +663,7 @@ crypto_policy_set_aes_cm_256_hmac_sha1_32(crypto_policy_t *p); /** * @brief srtp_dealloc() deallocates storage for an SRTP session * context. - * + * * The function call srtp_dealloc(s) deallocates storage for the * SRTP session context s. This function should be called no more * than one time for each of the contexts allocated by the function @@ -680,7 +681,7 @@ srtp_dealloc(srtp_t s); /* - * @brief identifies a particular SRTP profile + * @brief identifies a particular SRTP profile * * An srtp_profile_t enumeration is used to identify a particular SRTP * profile (that is, a set of algorithms and parameters). These @@ -688,13 +689,13 @@ srtp_dealloc(srtp_t s); */ typedef enum { - srtp_profile_reserved = 0, - srtp_profile_aes128_cm_sha1_80 = 1, - srtp_profile_aes128_cm_sha1_32 = 2, - srtp_profile_aes256_cm_sha1_80 = 3, - srtp_profile_aes256_cm_sha1_32 = 4, - srtp_profile_null_sha1_80 = 5, - srtp_profile_null_sha1_32 = 6, + srtp_profile_reserved = 0, + srtp_profile_aes128_cm_sha1_80 = 1, + srtp_profile_aes128_cm_sha1_32 = 2, + srtp_profile_aes256_cm_sha1_80 = 3, + srtp_profile_aes256_cm_sha1_32 = 4, + srtp_profile_null_sha1_80 = 5, + srtp_profile_null_sha1_32 = 6, } srtp_profile_t; @@ -702,26 +703,26 @@ typedef enum { * @brief crypto_policy_set_from_profile_for_rtp() sets a crypto policy * structure to the appropriate value for RTP based on an srtp_profile_t * - * @param p is a pointer to the policy structure to be set - * + * @param p is a pointer to the policy structure to be set + * * The function call crypto_policy_set_rtp_default(&policy, profile) * sets the crypto_policy_t at location policy to the policy for RTP * protection, as defined by the srtp_profile_t profile. - * + * * This function is a convenience that helps to avoid dealing directly * with the policy data structure. You are encouraged to initialize * policy elements with this function call. Doing so may allow your * code to be forward compatible with later versions of libSRTP that * include more elements in the crypto_policy_t datatype. - * + * * @return values * - err_status_ok no problems were encountered - * - err_status_bad_param the profile is not supported - * + * - err_status_bad_param the profile is not supported + * */ err_status_t -crypto_policy_set_from_profile_for_rtp(crypto_policy_t *policy, - srtp_profile_t profile); +crypto_policy_set_from_profile_for_rtp(crypto_policy_t *policy, + srtp_profile_t profile); @@ -730,26 +731,26 @@ crypto_policy_set_from_profile_for_rtp(crypto_policy_t *policy, * @brief crypto_policy_set_from_profile_for_rtcp() sets a crypto policy * structure to the appropriate value for RTCP based on an srtp_profile_t * - * @param p is a pointer to the policy structure to be set - * + * @param p is a pointer to the policy structure to be set + * * The function call crypto_policy_set_rtcp_default(&policy, profile) * sets the crypto_policy_t at location policy to the policy for RTCP * protection, as defined by the srtp_profile_t profile. - * + * * This function is a convenience that helps to avoid dealing directly * with the policy data structure. You are encouraged to initialize * policy elements with this function call. Doing so may allow your * code to be forward compatible with later versions of libSRTP that * include more elements in the crypto_policy_t datatype. - * + * * @return values * - err_status_ok no problems were encountered - * - err_status_bad_param the profile is not supported - * + * - err_status_bad_param the profile is not supported + * */ err_status_t -crypto_policy_set_from_profile_for_rtcp(crypto_policy_t *policy, - srtp_profile_t profile); +crypto_policy_set_from_profile_for_rtcp(crypto_policy_t *policy, + srtp_profile_t profile); /** * @brief returns the master key length for a given SRTP profile @@ -767,18 +768,18 @@ srtp_profile_get_master_salt_length(srtp_profile_t profile); /** * @brief appends the salt to the key * - * The function call append_salt_to_key(k, klen, s, slen) + * The function call append_salt_to_key(k, klen, s, slen) * copies the string s to the location at klen bytes following - * the location k. + * the location k. * * @warning There must be at least bytes_in_salt + bytes_in_key bytes * available at the location pointed to by key. - * + * */ void append_salt_to_key(unsigned char *key, unsigned int bytes_in_key, - unsigned char *salt, unsigned int bytes_in_salt); + unsigned char *salt, unsigned int bytes_in_salt); @@ -790,7 +791,7 @@ append_salt_to_key(unsigned char *key, unsigned int bytes_in_key, /** * @defgroup SRTCP Secure RTCP - * @ingroup SRTP + * @ingroup SRTP * * @brief Secure RTCP functions are used to protect RTCP traffic. * @@ -798,26 +799,26 @@ append_salt_to_key(unsigned char *key, unsigned int bytes_in_key, * traffic in much the same way as it does RTP traffic. The function * srtp_protect_rtcp() applies cryptographic protections to outbound * RTCP packets, and srtp_unprotect_rtcp() verifies the protections on - * inbound RTCP packets. + * inbound RTCP packets. * * A note on the naming convention: srtp_protect_rtcp() has an srtp_t * as its first argument, and thus has `srtp_' as its prefix. The - * trailing `_rtcp' indicates the protocol on which it acts. - * + * trailing `_rtcp' indicates the protocol on which it acts. + * * @{ */ /** * @brief srtp_protect_rtcp() is the Secure RTCP sender-side packet * processing function. - * + * * The function call srtp_protect_rtcp(ctx, rtp_hdr, len_ptr) applies * SRTCP protection to the RTCP packet rtcp_hdr (which has length * *len_ptr) using the SRTP session context ctx. If err_status_ok is * returned, then rtp_hdr points to the resulting SRTCP packet and * *len_ptr is the number of octets in that packet; otherwise, no * assumptions should be made about the value of either data elements. - * + * * @warning This function assumes that it can write the authentication * tag into the location in memory immediately following the RTCP * packet, and assumes that the RTCP packet is aligned on a 32-bit @@ -834,14 +835,14 @@ append_salt_to_key(unsigned char *key, unsigned int bytes_in_key, * was returned. Otherwise, the value of the data to which it points * is undefined. * - * @return + * @return * - err_status_ok if there were no problems. - * - [other] if there was a failure in + * - [other] if there was a failure in * the cryptographic mechanisms. */ - -err_status_t + +err_status_t srtp_protect_rtcp(srtp_t ctx, void *rtcp_hdr, int *pkt_octet_len); /** @@ -855,7 +856,7 @@ srtp_protect_rtcp(srtp_t ctx, void *rtcp_hdr, int *pkt_octet_len); * to the resulting RTCP packet and *len_ptr is the number of octets * in that packet; otherwise, no assumptions should be made about the * value of either data elements. - * + * * @warning This function assumes that the SRTCP packet is aligned on a * 32-bit boundary. * @@ -873,9 +874,9 @@ srtp_protect_rtcp(srtp_t ctx, void *rtcp_hdr, int *pkt_octet_len); * returned. Otherwise, the value of the data to which it points is * undefined. * - * @return + * @return * - err_status_ok if the RTCP packet is valid. - * - err_status_auth_fail if the SRTCP packet failed the message + * - err_status_auth_fail if the SRTCP packet failed the message * authentication check. * - err_status_replay_fail if the SRTCP packet is a replay (e.g. has * already been processed and accepted). @@ -883,7 +884,7 @@ srtp_protect_rtcp(srtp_t ctx, void *rtcp_hdr, int *pkt_octet_len); * */ -err_status_t +err_status_t srtp_unprotect_rtcp(srtp_t ctx, void *srtcp_hdr, int *pkt_octet_len); /** @@ -894,10 +895,10 @@ srtp_unprotect_rtcp(srtp_t ctx, void *srtcp_hdr, int *pkt_octet_len); * @defgroup SRTPevents SRTP events and callbacks * @ingroup SRTP * - * @brief libSRTP can use a user-provided callback function to + * @brief libSRTP can use a user-provided callback function to * handle events. * - * + * * libSRTP allows a user to provide a callback function to handle * events that need to be dealt with outside of the data plane (see * the enum srtp_event_t for a description of these events). Dealing @@ -918,8 +919,8 @@ srtp_unprotect_rtcp(srtp_t ctx, void *srtcp_hdr, int *pkt_octet_len); * @brief srtp_event_t defines events that need to be handled * * The enum srtp_event_t defines events that need to be handled - * outside the `data plane', such as SSRC collisions and - * key expirations. + * outside the `data plane', such as SSRC collisions and + * key expirations. * * When a key expires or the maximum number of packets has been * reached, an SRTP stream will enter an `expired' state in which no @@ -932,33 +933,33 @@ srtp_unprotect_rtcp(srtp_t ctx, void *srtcp_hdr, int *pkt_octet_len); * latter case, all of the streams in the session will expire. */ -typedef enum { - event_ssrc_collision, /**< - * An SSRC collision occured. +typedef enum { + event_ssrc_collision, /**< + * An SSRC collision occured. */ - event_key_soft_limit, /**< An SRTP stream reached the soft key - * usage limit and will expire soon. + event_key_soft_limit, /**< An SRTP stream reached the soft key + * usage limit and will expire soon. */ - event_key_hard_limit, /**< An SRTP stream reached the hard + event_key_hard_limit, /**< An SRTP stream reached the hard * key usage limit and has expired. */ - event_packet_index_limit /**< An SRTP stream reached the hard - * packet limit (2^48 packets). + event_packet_index_limit /**< An SRTP stream reached the hard + * packet limit (2^48 packets). */ } srtp_event_t; /** - * @brief srtp_event_data_t is the structure passed as a callback to + * @brief srtp_event_data_t is the structure passed as a callback to * the event handler function * * The struct srtp_event_data_t holds the data passed to the event - * handler function. + * handler function. */ typedef struct srtp_event_data_t { - srtp_t session; /**< The session in which the event happend. */ - srtp_stream_t stream; /**< The stream in which the event happend. */ - srtp_event_t event; /**< An enum indicating the type of event. */ + srtp_t session; /**< The session in which the event happend. */ + srtp_stream_t stream; /**< The stream in which the event happend. */ + srtp_event_t event; /**< An enum indicating the type of event. */ } srtp_event_data_t; /** @@ -976,7 +977,7 @@ typedef void (srtp_event_handler_func_t)(srtp_event_data_t *data); /** * @brief sets the event handler to the function supplied by the caller. - * + * * The function call srtp_install_event_handler(func) sets the event * handler function to the value func. The value NULL is acceptable * as an argument; in this case, events will be ignored rather than diff --git a/thirdparties/iphone/include/srtp/srtp_priv.h b/thirdparties/iphone/include/srtp/srtp_priv.h index cf2274e..997a115 100755 --- a/thirdparties/iphone/include/srtp/srtp_priv.h +++ b/thirdparties/iphone/include/srtp/srtp_priv.h @@ -7,26 +7,26 @@ * Cisco Systems, Inc. */ /* - * + * * Copyright (c) 2001-2006 Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -54,56 +54,56 @@ * an srtp_hdr_t represents the srtp header * * in this implementation, an srtp_hdr_t is assumed to be 32-bit aligned - * + * * (note that this definition follows that of RFC 1889 Appendix A, but * is not identical) */ - + #ifndef WORDS_BIGENDIAN /* * srtp_hdr_t represents an RTP or SRTP header. The bit-fields in - * this structure should be declared "unsigned int" instead of + * this structure should be declared "unsigned int" instead of * "unsigned char", but doing so causes the MS compiler to not * fully pack the bit fields. */ typedef struct { - unsigned char cc:4; /* CSRC count */ - unsigned char x:1; /* header extension flag */ - unsigned char p:1; /* padding flag */ - unsigned char version:2; /* protocol version */ - unsigned char pt:7; /* payload type */ - unsigned char m:1; /* marker bit */ - uint16_t seq; /* sequence number */ - uint32_t ts; /* timestamp */ - uint32_t ssrc; /* synchronization source */ + unsigned char cc:4; /* CSRC count */ + unsigned char x:1; /* header extension flag */ + unsigned char p:1; /* padding flag */ + unsigned char version:2; /* protocol version */ + unsigned char pt:7; /* payload type */ + unsigned char m:1; /* marker bit */ + uint16_t seq; /* sequence number */ + uint32_t ts; /* timestamp */ + uint32_t ssrc; /* synchronization source */ } srtp_hdr_t; #else /* BIG_ENDIAN */ typedef struct { - unsigned char version:2; /* protocol version */ - unsigned char p:1; /* padding flag */ - unsigned char x:1; /* header extension flag */ - unsigned char cc:4; /* CSRC count */ - unsigned char m:1; /* marker bit */ - unsigned pt:7; /* payload type */ - uint16_t seq; /* sequence number */ - uint32_t ts; /* timestamp */ - uint32_t ssrc; /* synchronization source */ + unsigned char version:2; /* protocol version */ + unsigned char p:1; /* padding flag */ + unsigned char x:1; /* header extension flag */ + unsigned char cc:4; /* CSRC count */ + unsigned char m:1; /* marker bit */ + unsigned pt:7; /* payload type */ + uint16_t seq; /* sequence number */ + uint32_t ts; /* timestamp */ + uint32_t ssrc; /* synchronization source */ } srtp_hdr_t; #endif typedef struct { - uint16_t profile_specific; /* profile-specific info */ - uint16_t length; /* number of 32-bit words in extension */ + uint16_t profile_specific; /* profile-specific info */ + uint16_t length; /* number of 32-bit words in extension */ } srtp_hdr_xtnd_t; /* - * srtcp_hdr_t represents a secure rtcp header + * srtcp_hdr_t represents a secure rtcp header * * in this implementation, an srtcp header is assumed to be 32-bit * alinged @@ -112,53 +112,53 @@ typedef struct { #ifndef WORDS_BIGENDIAN typedef struct { - unsigned char rc:5; /* reception report count */ - unsigned char p:1; /* padding flag */ - unsigned char version:2; /* protocol version */ - unsigned char pt:8; /* payload type */ - uint16_t len; /* length */ - uint32_t ssrc; /* synchronization source */ + unsigned char rc:5; /* reception report count */ + unsigned char p:1; /* padding flag */ + unsigned char version:2; /* protocol version */ + unsigned char pt:8; /* payload type */ + uint16_t len; /* length */ + uint32_t ssrc; /* synchronization source */ } srtcp_hdr_t; typedef struct { - unsigned int index:31; /* srtcp packet index in network order! */ - unsigned int e:1; /* encrypted? 1=yes */ - /* optional mikey/etc go here */ - /* and then the variable-length auth tag */ + unsigned int index:31; /* srtcp packet index in network order! */ + unsigned int e:1; /* encrypted? 1=yes */ + /* optional mikey/etc go here */ + /* and then the variable-length auth tag */ } srtcp_trailer_t; #else /* BIG_ENDIAN */ typedef struct { - unsigned char version:2; /* protocol version */ - unsigned char p:1; /* padding flag */ - unsigned char rc:5; /* reception report count */ - unsigned char pt:8; /* payload type */ - uint16_t len; /* length */ - uint32_t ssrc; /* synchronization source */ + unsigned char version:2; /* protocol version */ + unsigned char p:1; /* padding flag */ + unsigned char rc:5; /* reception report count */ + unsigned char pt:8; /* payload type */ + uint16_t len; /* length */ + uint32_t ssrc; /* synchronization source */ } srtcp_hdr_t; typedef struct { - unsigned int version:2; /* protocol version */ - unsigned int p:1; /* padding flag */ - unsigned int count:5; /* varies by packet type */ - unsigned int pt:8; /* payload type */ - uint16_t length; /* len of uint32s of packet less header */ + unsigned int version:2; /* protocol version */ + unsigned int p:1; /* padding flag */ + unsigned int count:5; /* varies by packet type */ + unsigned int pt:8; /* payload type */ + uint16_t length; /* len of uint32s of packet less header */ } rtcp_common_t; typedef struct { - unsigned int e:1; /* encrypted? 1=yes */ - unsigned int index:31; /* srtcp packet index */ - /* optional mikey/etc go here */ - /* and then the variable-length auth tag */ + unsigned int e:1; /* encrypted? 1=yes */ + unsigned int index:31; /* srtcp packet index */ + /* optional mikey/etc go here */ + /* and then the variable-length auth tag */ } srtcp_trailer_t; #endif /* - * the following declarations are libSRTP internal functions + * the following declarations are libSRTP internal functions */ /* @@ -166,7 +166,7 @@ typedef struct { * to ssrc, or NULL if no stream exists for that ssrc */ -srtp_stream_t +srtp_stream_t srtp_get_stream(srtp_t srtp, uint32_t ssrc); @@ -180,47 +180,47 @@ err_status_t srtp_stream_init_keys(srtp_stream_t srtp, const void *key); /* - * srtp_stream_init(s, p) initializes the srtp_stream_t s to + * srtp_stream_init(s, p) initializes the srtp_stream_t s to * use the policy at the location p */ err_status_t -srtp_stream_init(srtp_stream_t srtp, - const srtp_policy_t *p); +srtp_stream_init(srtp_stream_t srtp, + const srtp_policy_t *p); /* - * libsrtp internal datatypes + * libsrtp internal datatypes */ -typedef enum direction_t { - dir_unknown = 0, - dir_srtp_sender = 1, - dir_srtp_receiver = 2 +typedef enum direction_t { + dir_unknown = 0, + dir_srtp_sender = 1, + dir_srtp_receiver = 2 } direction_t; -/* +/* * an srtp_stream_t has its own SSRC, encryption key, authentication * key, sequence number, and replay database - * + * * note that the keys might not actually be unique, in which case the * cipher_t and auth_t pointers will point to the same structures */ typedef struct srtp_stream_ctx_t { - uint32_t ssrc; - cipher_t *rtp_cipher; - auth_t *rtp_auth; - rdbx_t rtp_rdbx; - sec_serv_t rtp_services; - cipher_t *rtcp_cipher; - auth_t *rtcp_auth; - rdb_t rtcp_rdb; - sec_serv_t rtcp_services; - key_limit_ctx_t *limit; - direction_t direction; - int allow_repeat_tx; - ekt_stream_t ekt; - struct srtp_stream_ctx_t *next; /* linked list of streams */ + uint32_t ssrc; + cipher_t *rtp_cipher; + auth_t *rtp_auth; + rdbx_t rtp_rdbx; + sec_serv_t rtp_services; + cipher_t *rtcp_cipher; + auth_t *rtcp_auth; + rdb_t rtcp_rdb; + sec_serv_t rtcp_services; + key_limit_ctx_t *limit; + direction_t direction; + int allow_repeat_tx; + ekt_stream_t ekt; + struct srtp_stream_ctx_t *next; /* linked list of streams */ } srtp_stream_ctx_t; @@ -229,8 +229,8 @@ typedef struct srtp_stream_ctx_t { */ typedef struct srtp_ctx_t { - srtp_stream_ctx_t *stream_list; /* linked list of streams */ - srtp_stream_ctx_t *stream_template; /* act as template for other streams */ + srtp_stream_ctx_t *stream_list; /* linked list of streams */ + srtp_stream_ctx_t *stream_template; /* act as template for other streams */ } srtp_ctx_t; @@ -239,7 +239,7 @@ typedef struct srtp_ctx_t { * srtp_handle_event(srtp, srtm, evnt) calls the event handling * function, if there is one. * - * This macro is not included in the documentation as it is + * This macro is not included in the documentation as it is * an internal-only function. */ @@ -250,7 +250,7 @@ typedef struct srtp_ctx_t { data.stream = strm; \ data.event = evnt; \ srtp_event_handler(&data); \ -} +} #endif /* SRTP_PRIV_H */ diff --git a/thirdparties/iphone/include/srtp/stat.h b/thirdparties/iphone/include/srtp/stat.h index e28b131..a67a380 100755 --- a/thirdparties/iphone/include/srtp/stat.h +++ b/thirdparties/iphone/include/srtp/stat.h @@ -1,6 +1,6 @@ /* * stats.h - * + * * interface to statistical test functions * * David A. McGrew @@ -8,26 +8,26 @@ */ /* - * + * * Copyright(c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS diff --git a/thirdparties/iphone/include/srtp/ut_sim.h b/thirdparties/iphone/include/srtp/ut_sim.h index c25feeb..bd7d015 100755 --- a/thirdparties/iphone/include/srtp/ut_sim.h +++ b/thirdparties/iphone/include/srtp/ut_sim.h @@ -9,26 +9,26 @@ */ /* - * + * * Copyright (c) 2001-2006, Cisco Systems, Inc. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * + * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -54,12 +54,12 @@ #define UT_BUF 160 /* maximum amount of packet reorder */ typedef struct { - uint32_t index; - uint32_t buffer[UT_BUF]; + uint32_t index; + uint32_t buffer[UT_BUF]; } ut_connection; /* - * ut_init(&u) initializes the ut_connection + * ut_init(&u) initializes the ut_connection * * this function should always be the first one called on a new * ut_connection diff --git a/thirdparties/iphone/include/srtp/xfm.h b/thirdparties/iphone/include/srtp/xfm.h index 5837149..a5e393f 100755 --- a/thirdparties/iphone/include/srtp/xfm.h +++ b/thirdparties/iphone/include/srtp/xfm.h @@ -2,7 +2,7 @@ * xfm.h * * interface for abstract crypto transform - * + * * David A. McGrew * Cisco Systems, Inc. */ @@ -28,12 +28,12 @@ * The function pointer xfm_func_t points to a function that * implements a crypto transform, and provides a uniform API for * accessing crypto mechanisms. - * - * @param key location of secret key * - * @param clear data to be authenticated only + * @param key location of secret key + * + * @param clear data to be authenticated only * - * @param clear_len length of data to be authenticated only + * @param clear_len length of data to be authenticated only * * @param iv location to write the Initialization Vector (IV) * @@ -45,38 +45,38 @@ * encrypted and authenticated (before the function call), and the * length of the ciphertext (after the call) * - * @param auth_tag location to write auth tag + * @param auth_tag location to write auth tag */ -typedef err_status_t (*xfm_func_t) - (void *key, - void *clear, - unsigned clear_len, - void *iv, - void *protect, - unsigned *protected_len, - void *auth_tag - ); - -typedef +typedef err_status_t (*xfm_func_t) +(void *key, + void *clear, + unsigned clear_len, + void *iv, + void *protect, + unsigned *protected_len, + void *auth_tag +); + +typedef err_status_t (*xfm_inv_t) - (void *key, /* location of secret key */ - void *clear, /* data to be authenticated only */ - unsigned clear_len, /* length of data to be authenticated only */ - void *iv, /* location of iv */ - void *opaque, /* data to be decrypted and authenticated */ - unsigned *opaque_len, /* location of the length of data to be - * decrypted and authd (before and after) +(void *key, /* location of secret key */ + void *clear, /* data to be authenticated only */ + unsigned clear_len, /* length of data to be authenticated only */ + void *iv, /* location of iv */ + void *opaque, /* data to be decrypted and authenticated */ + unsigned *opaque_len, /* location of the length of data to be + * decrypted and authd (before and after) */ - void *auth_tag /* location of auth tag */ - ); + void *auth_tag /* location of auth tag */ +); typedef struct xfm_ctx_t { - xfm_func_t func; - xfm_inv_t inv; - unsigned key_len; - unsigned iv_len; - unsigned auth_tag_len; + xfm_func_t func; + xfm_inv_t inv; + unsigned key_len; + unsigned iv_len; + unsigned auth_tag_len; } xfm_ctx_t; typedef xfm_ctx_t *xfm_t; @@ -89,35 +89,35 @@ typedef xfm_ctx_t *xfm_t; /* cryptoalgo - 5/28 */ - -typedef err_status_t (*cryptoalg_func_t) - (void *key, - void *clear, - unsigned clear_len, - void *iv, - void *opaque, - unsigned *opaque_len - ); - -typedef + +typedef err_status_t (*cryptoalg_func_t) +(void *key, + void *clear, + unsigned clear_len, + void *iv, + void *opaque, + unsigned *opaque_len +); + +typedef err_status_t (*cryptoalg_inv_t) - (void *key, /* location of secret key */ - void *clear, /* data to be authenticated only */ - unsigned clear_len, /* length of data to be authenticated only */ - void *iv, /* location of iv */ - void *opaque, /* data to be decrypted and authenticated */ - unsigned *opaque_len /* location of the length of data to be - * decrypted and authd (before and after) +(void *key, /* location of secret key */ + void *clear, /* data to be authenticated only */ + unsigned clear_len, /* length of data to be authenticated only */ + void *iv, /* location of iv */ + void *opaque, /* data to be decrypted and authenticated */ + unsigned *opaque_len /* location of the length of data to be + * decrypted and authd (before and after) */ - ); +); typedef struct cryptoalg_ctx_t { - cryptoalg_func_t enc; - cryptoalg_inv_t dec; - unsigned key_len; - unsigned iv_len; - unsigned auth_tag_len; - unsigned max_expansion; + cryptoalg_func_t enc; + cryptoalg_inv_t dec; + unsigned key_len; + unsigned iv_len; + unsigned auth_tag_len; + unsigned max_expansion; } cryptoalg_ctx_t; typedef cryptoalg_ctx_t *cryptoalg_t; diff --git a/thirdparties/iphone/include/vpx/svc_context.h b/thirdparties/iphone/include/vpx/svc_context.h index 5d0fbbd..40701cc 100755 --- a/thirdparties/iphone/include/vpx/svc_context.h +++ b/thirdparties/iphone/include/vpx/svc_context.h @@ -24,28 +24,29 @@ extern "C" { #endif typedef enum SVC_ENCODING_MODE { - INTER_LAYER_PREDICTION_I, - ALT_INTER_LAYER_PREDICTION_IP, - INTER_LAYER_PREDICTION_IP, - USE_GOLDEN_FRAME -} SVC_ENCODING_MODE; + INTER_LAYER_PREDICTION_I, + ALT_INTER_LAYER_PREDICTION_IP, + INTER_LAYER_PREDICTION_IP, + USE_GOLDEN_FRAME +} +SVC_ENCODING_MODE; typedef enum SVC_LOG_LEVEL { - SVC_LOG_ERROR, - SVC_LOG_INFO, - SVC_LOG_DEBUG + SVC_LOG_ERROR, + SVC_LOG_INFO, + SVC_LOG_DEBUG } SVC_LOG_LEVEL; typedef struct { - // public interface to svc_command options - int spatial_layers; // number of layers - SVC_ENCODING_MODE encoding_mode; // svc encoding strategy - SVC_LOG_LEVEL log_level; // amount of information to display - int log_print; // when set, printf log messages instead of returning the - // message with svc_get_message - - // private storage for vpx_svc_encode - void *internal; + // public interface to svc_command options + int spatial_layers; // number of layers + SVC_ENCODING_MODE encoding_mode; // svc encoding strategy + SVC_LOG_LEVEL log_level; // amount of information to display + int log_print; // when set, printf log messages instead of returning the + // message with svc_get_message + + // private storage for vpx_svc_encode + void *internal; } SvcContext; /** @@ -73,7 +74,7 @@ vpx_codec_err_t vpx_svc_set_quantizers(SvcContext *svc_ctx, * e.g., "4/16,5/16,7/16,11/16,16/16" */ vpx_codec_err_t vpx_svc_set_scale_factors(SvcContext *svc_ctx, - const char *scale_factors); + const char *scale_factors); /** * initialize SVC encoding @@ -128,9 +129,9 @@ char *vpx_svc_get_rc_stats_buffer(const SvcContext *svc_ctx); * return spatial resolution of the specified layer */ vpx_codec_err_t vpx_svc_get_layer_resolution(const SvcContext *svc_ctx, - int layer, - unsigned int *width, - unsigned int *height); + int layer, + unsigned int *width, + unsigned int *height); /** * return number of frames that have been encoded */ diff --git a/thirdparties/iphone/include/vpx/vp8.h b/thirdparties/iphone/include/vpx/vp8.h index 2a31af6..f748314 100755 --- a/thirdparties/iphone/include/vpx/vp8.h +++ b/thirdparties/iphone/include/vpx/vp8.h @@ -42,21 +42,21 @@ extern "C" { * The set of macros define the control functions of VP8 interface */ enum vp8_com_control_id { - VP8_SET_REFERENCE = 1, /**< pass in an external frame into decoder to be used as reference frame */ - VP8_COPY_REFERENCE = 2, /**< get a copy of reference frame from the decoder */ - VP8_SET_POSTPROC = 3, /**< set the decoder's post processing settings */ - VP8_SET_DBG_COLOR_REF_FRAME = 4, /**< set the reference frames to color for each macroblock */ - VP8_SET_DBG_COLOR_MB_MODES = 5, /**< set which macro block modes to color */ - VP8_SET_DBG_COLOR_B_MODES = 6, /**< set which blocks modes to color */ - VP8_SET_DBG_DISPLAY_MV = 7, /**< set which motion vector modes to draw */ + VP8_SET_REFERENCE = 1, /**< pass in an external frame into decoder to be used as reference frame */ + VP8_COPY_REFERENCE = 2, /**< get a copy of reference frame from the decoder */ + VP8_SET_POSTPROC = 3, /**< set the decoder's post processing settings */ + VP8_SET_DBG_COLOR_REF_FRAME = 4, /**< set the reference frames to color for each macroblock */ + VP8_SET_DBG_COLOR_MB_MODES = 5, /**< set which macro block modes to color */ + VP8_SET_DBG_COLOR_B_MODES = 6, /**< set which blocks modes to color */ + VP8_SET_DBG_DISPLAY_MV = 7, /**< set which motion vector modes to draw */ - /* TODO(jkoleszar): The encoder incorrectly reuses some of these values (5+) - * for its control ids. These should be migrated to something like the - * VP8_DECODER_CTRL_ID_START range next time we're ready to break the ABI. - */ - VP9_GET_REFERENCE = 128, /**< get a pointer to a reference frame */ - VP8_COMMON_CTRL_ID_MAX, - VP8_DECODER_CTRL_ID_START = 256 + /* TODO(jkoleszar): The encoder incorrectly reuses some of these values (5+) + * for its control ids. These should be migrated to something like the + * VP8_DECODER_CTRL_ID_START range next time we're ready to break the ABI. + */ + VP9_GET_REFERENCE = 128, /**< get a pointer to a reference frame */ + VP8_COMMON_CTRL_ID_MAX, + VP8_DECODER_CTRL_ID_START = 256 }; /*!\brief post process flags @@ -64,15 +64,15 @@ enum vp8_com_control_id { * The set of macros define VP8 decoder post processing flags */ enum vp8_postproc_level { - VP8_NOFILTERING = 0, - VP8_DEBLOCK = 1 << 0, - VP8_DEMACROBLOCK = 1 << 1, - VP8_ADDNOISE = 1 << 2, - VP8_DEBUG_TXT_FRAME_INFO = 1 << 3, /**< print frame information */ - VP8_DEBUG_TXT_MBLK_MODES = 1 << 4, /**< print macro block modes over each macro block */ - VP8_DEBUG_TXT_DC_DIFF = 1 << 5, /**< print dc diff for each macro block */ - VP8_DEBUG_TXT_RATE_INFO = 1 << 6, /**< print video rate info (encoder only) */ - VP8_MFQE = 1 << 10 + VP8_NOFILTERING = 0, + VP8_DEBLOCK = 1 << 0, + VP8_DEMACROBLOCK = 1 << 1, + VP8_ADDNOISE = 1 << 2, + VP8_DEBUG_TXT_FRAME_INFO = 1 << 3, /**< print frame information */ + VP8_DEBUG_TXT_MBLK_MODES = 1 << 4, /**< print macro block modes over each macro block */ + VP8_DEBUG_TXT_DC_DIFF = 1 << 5, /**< print dc diff for each macro block */ + VP8_DEBUG_TXT_RATE_INFO = 1 << 6, /**< print video rate info (encoder only) */ + VP8_MFQE = 1 << 10 }; /*!\brief post process flags @@ -83,9 +83,9 @@ enum vp8_postproc_level { */ typedef struct vp8_postproc_cfg { - int post_proc_flag; /**< the types of post processing to be done, should be combination of "vp8_postproc_level" */ - int deblocking_level; /**< the strength of deblocking, valid range [0, 16] */ - int noise_level; /**< the strength of additive noise, valid range [0, 16] */ + int post_proc_flag; /**< the types of post processing to be done, should be combination of "vp8_postproc_level" */ + int deblocking_level; /**< the strength of deblocking, valid range [0, 16] */ + int noise_level; /**< the strength of additive noise, valid range [0, 16] */ } vp8_postproc_cfg_t; /*!\brief reference frame type @@ -93,9 +93,9 @@ typedef struct vp8_postproc_cfg { * The set of macros define the type of VP8 reference frames */ typedef enum vpx_ref_frame_type { - VP8_LAST_FRAME = 1, - VP8_GOLD_FRAME = 2, - VP8_ALTR_FRAME = 4 + VP8_LAST_FRAME = 1, + VP8_GOLD_FRAME = 2, + VP8_ALTR_FRAME = 4 } vpx_ref_frame_type_t; /*!\brief reference frame data struct @@ -103,8 +103,8 @@ typedef enum vpx_ref_frame_type { * Define the data struct to access vp8 reference frames. */ typedef struct vpx_ref_frame { - vpx_ref_frame_type_t frame_type; /**< which reference frame */ - vpx_image_t img; /**< reference frame data in image format */ + vpx_ref_frame_type_t frame_type; /**< which reference frame */ + vpx_image_t img; /**< reference frame data in image format */ } vpx_ref_frame_t; /*!\brief VP9 specific reference frame data struct @@ -112,8 +112,8 @@ typedef struct vpx_ref_frame { * Define the data struct to access vp9 reference frames. */ typedef struct vp9_ref_frame { - int idx; /**< frame index to get (input) */ - vpx_image_t img; /**< img structure to populate (output) */ + int idx; /**< frame index to get (input) */ + vpx_image_t img; /**< img structure to populate (output) */ } vp9_ref_frame_t; /*!\brief vp8 decoder control function parameter type diff --git a/thirdparties/iphone/include/vpx/vp8cx.h b/thirdparties/iphone/include/vpx/vp8cx.h index 75caad8..5ff0350 100755 --- a/thirdparties/iphone/include/vpx/vp8cx.h +++ b/thirdparties/iphone/include/vpx/vp8cx.h @@ -129,256 +129,256 @@ extern vpx_codec_iface_t *vpx_codec_vp9_cx(void); * \sa #vpx_codec_control */ enum vp8e_enc_control_id { - VP8E_UPD_ENTROPY = 5, /**< control function to set mode of entropy update in encoder */ - VP8E_UPD_REFERENCE, /**< control function to set reference update mode in encoder */ - VP8E_USE_REFERENCE, /**< control function to set which reference frame encoder can use */ - VP8E_SET_ROI_MAP, /**< control function to pass an ROI map to encoder */ - VP8E_SET_ACTIVEMAP, /**< control function to pass an Active map to encoder */ - VP8E_SET_SCALEMODE = 11, /**< control function to set encoder scaling mode */ - /*!\brief control function to set vp8 encoder cpuused - * - * Changes in this value influences, among others, the encoder's selection - * of motion estimation methods. Values greater than 0 will increase encoder - * speed at the expense of quality. - * The full set of adjustments can be found in - * onyx_if.c:vp8_set_speed_features(). - * \todo List highlights of the changes at various levels. - * - * \note Valid range: -16..16 - */ - VP8E_SET_CPUUSED = 13, - VP8E_SET_ENABLEAUTOALTREF, /**< control function to enable vp8 to automatic set and use altref frame */ - /*!\brief control function to set noise sensitivity - * - * 0: off, 1: OnYOnly, 2: OnYUV, - * 3: OnYUVAggressive, 4: Adaptive - */ - VP8E_SET_NOISE_SENSITIVITY, - VP8E_SET_SHARPNESS, /**< control function to set sharpness */ - VP8E_SET_STATIC_THRESHOLD, /**< control function to set the threshold for macroblocks treated static */ - VP8E_SET_TOKEN_PARTITIONS, /**< control function to set the number of token partitions */ - VP8E_GET_LAST_QUANTIZER, /**< return the quantizer chosen by the + VP8E_UPD_ENTROPY = 5, /**< control function to set mode of entropy update in encoder */ + VP8E_UPD_REFERENCE, /**< control function to set reference update mode in encoder */ + VP8E_USE_REFERENCE, /**< control function to set which reference frame encoder can use */ + VP8E_SET_ROI_MAP, /**< control function to pass an ROI map to encoder */ + VP8E_SET_ACTIVEMAP, /**< control function to pass an Active map to encoder */ + VP8E_SET_SCALEMODE = 11, /**< control function to set encoder scaling mode */ + /*!\brief control function to set vp8 encoder cpuused + * + * Changes in this value influences, among others, the encoder's selection + * of motion estimation methods. Values greater than 0 will increase encoder + * speed at the expense of quality. + * The full set of adjustments can be found in + * onyx_if.c:vp8_set_speed_features(). + * \todo List highlights of the changes at various levels. + * + * \note Valid range: -16..16 + */ + VP8E_SET_CPUUSED = 13, + VP8E_SET_ENABLEAUTOALTREF, /**< control function to enable vp8 to automatic set and use altref frame */ + /*!\brief control function to set noise sensitivity + * + * 0: off, 1: OnYOnly, 2: OnYUV, + * 3: OnYUVAggressive, 4: Adaptive + */ + VP8E_SET_NOISE_SENSITIVITY, + VP8E_SET_SHARPNESS, /**< control function to set sharpness */ + VP8E_SET_STATIC_THRESHOLD, /**< control function to set the threshold for macroblocks treated static */ + VP8E_SET_TOKEN_PARTITIONS, /**< control function to set the number of token partitions */ + VP8E_GET_LAST_QUANTIZER, /**< return the quantizer chosen by the encoder for the last frame using the internal scale */ - VP8E_GET_LAST_QUANTIZER_64, /**< return the quantizer chosen by the + VP8E_GET_LAST_QUANTIZER_64, /**< return the quantizer chosen by the encoder for the last frame, using the 0..63 scale as used by the rc_*_quantizer config parameters */ - VP8E_SET_ARNR_MAXFRAMES, /**< control function to set the max number of frames blurred creating arf*/ - VP8E_SET_ARNR_STRENGTH, //!< control function to set the filter - //!< strength for the arf - - /*!\deprecated control function to set the filter type to use for the arf */ - VP8E_SET_ARNR_TYPE, - - VP8E_SET_TUNING, /**< control function to set visual tuning */ - /*!\brief control function to set constrained quality level - * - * \attention For this value to be used vpx_codec_enc_cfg_t::g_usage must be - * set to #VPX_CQ. - * \note Valid range: 0..63 - */ - VP8E_SET_CQ_LEVEL, - - /*!\brief Max data rate for Intra frames - * - * This value controls additional clamping on the maximum size of a - * keyframe. It is expressed as a percentage of the average - * per-frame bitrate, with the special (and default) value 0 meaning - * unlimited, or no additional clamping beyond the codec's built-in - * algorithm. - * - * For example, to allocate no more than 4.5 frames worth of bitrate - * to a keyframe, set this to 450. - * - */ - VP8E_SET_MAX_INTRA_BITRATE_PCT, - VP8E_SET_FRAME_FLAGS, /**< control function to set reference and update frame flags */ - - /*!\brief Max data rate for Inter frames - * - * This value controls additional clamping on the maximum size of an - * inter frame. It is expressed as a percentage of the average - * per-frame bitrate, with the special (and default) value 0 meaning - * unlimited, or no additional clamping beyond the codec's built-in - * algorithm. - * - * For example, to allow no more than 4.5 frames worth of bitrate - * to an inter frame, set this to 450. - * - */ - VP8E_SET_MAX_INTER_BITRATE_PCT, - - /*!\brief Boost percentage for Golden Frame in CBR mode - * - * This value controls the amount of boost given to Golden Frame in - * CBR mode. It is expressed as a percentage of the average - * per-frame bitrate, with the special (and default) value 0 meaning - * the feature is off, i.e., no golden frame boost in CBR mode and - * average bitrate target is used. - * - * For example, to allow 100% more bits, i.e, 2X, in a golden frame - * than average frame, set this to 100. - * - */ - VP8E_SET_GF_CBR_BOOST_PCT, - - /*!\brief Codec control function to set the temporal layer id - * - * For temporal scalability: this control allows the application to set the - * layer id for each frame to be encoded. Note that this control must be set - * for every frame prior to encoding. The usage of this control function - * supersedes the internal temporal pattern counter, which is now deprecated. - */ - VP8E_SET_TEMPORAL_LAYER_ID, - - VP8E_SET_SCREEN_CONTENT_MODE, /**<control function to set encoder screen content mode */ - - /*!\brief Codec control function to set lossless encoding mode - * - * VP9 can operate in lossless encoding mode, in which the bitstream - * produced will be able to decode and reconstruct a perfect copy of - * input source. This control function provides a mean to switch encoder - * into lossless coding mode(1) or normal coding mode(0) that may be lossy. - * 0 = lossy coding mode - * 1 = lossless coding mode - * - * By default, encoder operates in normal coding mode (maybe lossy). - */ - VP9E_SET_LOSSLESS, - - /*!\brief Codec control function to set number of tile columns - * - * In encoding and decoding, VP9 allows an input image frame be partitioned - * into separated vertical tile columns, which can be encoded or decoded - * independently. This enables easy implementation of parallel encoding and - * decoding. This control requests the encoder to use column tiles in - * encoding an input frame, with number of tile columns (in Log2 unit) as - * the parameter: - * 0 = 1 tile column - * 1 = 2 tile columns - * 2 = 4 tile columns - * ..... - * n = 2**n tile columns - * The requested tile columns will be capped by encoder based on image size - * limitation (The minimum width of a tile column is 256 pixel, the maximum - * is 4096). - * - * By default, the value is 0, i.e. one single column tile for entire image. - */ - VP9E_SET_TILE_COLUMNS, - - /*!\brief Codec control function to set number of tile rows - * - * In encoding and decoding, VP9 allows an input image frame be partitioned - * into separated horizontal tile rows. Tile rows are encoded or decoded - * sequentially. Even though encoding/decoding of later tile rows depends on - * earlier ones, this allows the encoder to output data packets for tile rows - * prior to completely processing all tile rows in a frame, thereby reducing - * the latency in processing between input and output. The parameter - * for this control describes the number of tile rows, which has a valid - * range [0, 2]: - * 0 = 1 tile row - * 1 = 2 tile rows - * 2 = 4 tile rows - * - * By default, the value is 0, i.e. one single row tile for entire image. - */ - VP9E_SET_TILE_ROWS, - - /*!\brief Codec control function to enable frame parallel decoding feature - * - * VP9 has a bitstream feature to reduce decoding dependency between frames - * by turning off backward update of probability context used in encoding - * and decoding. This allows staged parallel processing of more than one - * video frames in the decoder. This control function provides a mean to - * turn this feature on or off for bitstreams produced by encoder. - * - * By default, this feature is off. - */ - VP9E_SET_FRAME_PARALLEL_DECODING, - - /*!\brief Codec control function to set adaptive quantization mode - * - * VP9 has a segment based feature that allows encoder to adaptively change - * quantization parameter for each segment within a frame to improve the - * subjective quality. This control makes encoder operate in one of the - * several AQ_modes supported. - * - * By default, encoder operates with AQ_Mode 0(adaptive quantization off). - */ - VP9E_SET_AQ_MODE, - - /*!\brief Codec control function to enable/disable periodic Q boost - * - * One VP9 encoder speed feature is to enable quality boost by lowering - * frame level Q periodically. This control function provides a mean to - * turn on/off this feature. - * 0 = off - * 1 = on - * - * By default, the encoder is allowed to use this feature for appropriate - * encoding modes. - */ - VP9E_SET_FRAME_PERIODIC_BOOST, - - /*!\brief control function to set noise sensitivity - * - * 0: off, 1: OnYOnly - */ - VP9E_SET_NOISE_SENSITIVITY, - - /*!\brief control function to turn on/off SVC in encoder. - * \note Return value is VPX_CODEC_INVALID_PARAM if the encoder does not - * support SVC in its current encoding mode - * 0: off, 1: on - */ - VP9E_SET_SVC, - - /*!\brief control function to set parameters for SVC. - * \note Parameters contain min_q, max_q, scaling factor for each of the - * SVC layers. - */ - VP9E_SET_SVC_PARAMETERS, - - /*!\brief control function to set svc layer for spatial and temporal. - * \note Valid ranges: 0..#vpx_codec_enc_cfg::ss_number_layers for spatial - * layer and 0..#vpx_codec_enc_cfg::ts_number_layers for - * temporal layer. - */ - VP9E_SET_SVC_LAYER_ID, - - /*!\brief control function to set content type. - * \note Valid parameter range: - * VP9E_CONTENT_DEFAULT = Regular video content (Default) - * VP9E_CONTENT_SCREEN = Screen capture content - */ - VP9E_SET_TUNE_CONTENT, - - /*!\brief control function to get svc layer ID. - * \note The layer ID returned is for the data packet from the registered - * callback function. - */ - VP9E_GET_SVC_LAYER_ID, - - /*!\brief control function to register callback for getting per layer packet. - * \note Parameter for this control function is a structure with a callback - * function and a pointer to private data used by the callback. - */ - VP9E_REGISTER_CX_CALLBACK, - - /*!\brief control function to set color space info. - * \note Valid ranges: 0..7, default is "UNKNOWN". - * 0 = UNKNOWN, - * 1 = BT_601 - * 2 = BT_709 - * 3 = SMPTE_170 - * 4 = SMPTE_240 - * 5 = BT_2020 - * 6 = RESERVED - * 7 = SRGB - */ - VP9E_SET_COLOR_SPACE, + VP8E_SET_ARNR_MAXFRAMES, /**< control function to set the max number of frames blurred creating arf*/ + VP8E_SET_ARNR_STRENGTH, //!< control function to set the filter + //!< strength for the arf + + /*!\deprecated control function to set the filter type to use for the arf */ + VP8E_SET_ARNR_TYPE, + + VP8E_SET_TUNING, /**< control function to set visual tuning */ + /*!\brief control function to set constrained quality level + * + * \attention For this value to be used vpx_codec_enc_cfg_t::g_usage must be + * set to #VPX_CQ. + * \note Valid range: 0..63 + */ + VP8E_SET_CQ_LEVEL, + + /*!\brief Max data rate for Intra frames + * + * This value controls additional clamping on the maximum size of a + * keyframe. It is expressed as a percentage of the average + * per-frame bitrate, with the special (and default) value 0 meaning + * unlimited, or no additional clamping beyond the codec's built-in + * algorithm. + * + * For example, to allocate no more than 4.5 frames worth of bitrate + * to a keyframe, set this to 450. + * + */ + VP8E_SET_MAX_INTRA_BITRATE_PCT, + VP8E_SET_FRAME_FLAGS, /**< control function to set reference and update frame flags */ + + /*!\brief Max data rate for Inter frames + * + * This value controls additional clamping on the maximum size of an + * inter frame. It is expressed as a percentage of the average + * per-frame bitrate, with the special (and default) value 0 meaning + * unlimited, or no additional clamping beyond the codec's built-in + * algorithm. + * + * For example, to allow no more than 4.5 frames worth of bitrate + * to an inter frame, set this to 450. + * + */ + VP8E_SET_MAX_INTER_BITRATE_PCT, + + /*!\brief Boost percentage for Golden Frame in CBR mode + * + * This value controls the amount of boost given to Golden Frame in + * CBR mode. It is expressed as a percentage of the average + * per-frame bitrate, with the special (and default) value 0 meaning + * the feature is off, i.e., no golden frame boost in CBR mode and + * average bitrate target is used. + * + * For example, to allow 100% more bits, i.e, 2X, in a golden frame + * than average frame, set this to 100. + * + */ + VP8E_SET_GF_CBR_BOOST_PCT, + + /*!\brief Codec control function to set the temporal layer id + * + * For temporal scalability: this control allows the application to set the + * layer id for each frame to be encoded. Note that this control must be set + * for every frame prior to encoding. The usage of this control function + * supersedes the internal temporal pattern counter, which is now deprecated. + */ + VP8E_SET_TEMPORAL_LAYER_ID, + + VP8E_SET_SCREEN_CONTENT_MODE, /**<control function to set encoder screen content mode */ + + /*!\brief Codec control function to set lossless encoding mode + * + * VP9 can operate in lossless encoding mode, in which the bitstream + * produced will be able to decode and reconstruct a perfect copy of + * input source. This control function provides a mean to switch encoder + * into lossless coding mode(1) or normal coding mode(0) that may be lossy. + * 0 = lossy coding mode + * 1 = lossless coding mode + * + * By default, encoder operates in normal coding mode (maybe lossy). + */ + VP9E_SET_LOSSLESS, + + /*!\brief Codec control function to set number of tile columns + * + * In encoding and decoding, VP9 allows an input image frame be partitioned + * into separated vertical tile columns, which can be encoded or decoded + * independently. This enables easy implementation of parallel encoding and + * decoding. This control requests the encoder to use column tiles in + * encoding an input frame, with number of tile columns (in Log2 unit) as + * the parameter: + * 0 = 1 tile column + * 1 = 2 tile columns + * 2 = 4 tile columns + * ..... + * n = 2**n tile columns + * The requested tile columns will be capped by encoder based on image size + * limitation (The minimum width of a tile column is 256 pixel, the maximum + * is 4096). + * + * By default, the value is 0, i.e. one single column tile for entire image. + */ + VP9E_SET_TILE_COLUMNS, + + /*!\brief Codec control function to set number of tile rows + * + * In encoding and decoding, VP9 allows an input image frame be partitioned + * into separated horizontal tile rows. Tile rows are encoded or decoded + * sequentially. Even though encoding/decoding of later tile rows depends on + * earlier ones, this allows the encoder to output data packets for tile rows + * prior to completely processing all tile rows in a frame, thereby reducing + * the latency in processing between input and output. The parameter + * for this control describes the number of tile rows, which has a valid + * range [0, 2]: + * 0 = 1 tile row + * 1 = 2 tile rows + * 2 = 4 tile rows + * + * By default, the value is 0, i.e. one single row tile for entire image. + */ + VP9E_SET_TILE_ROWS, + + /*!\brief Codec control function to enable frame parallel decoding feature + * + * VP9 has a bitstream feature to reduce decoding dependency between frames + * by turning off backward update of probability context used in encoding + * and decoding. This allows staged parallel processing of more than one + * video frames in the decoder. This control function provides a mean to + * turn this feature on or off for bitstreams produced by encoder. + * + * By default, this feature is off. + */ + VP9E_SET_FRAME_PARALLEL_DECODING, + + /*!\brief Codec control function to set adaptive quantization mode + * + * VP9 has a segment based feature that allows encoder to adaptively change + * quantization parameter for each segment within a frame to improve the + * subjective quality. This control makes encoder operate in one of the + * several AQ_modes supported. + * + * By default, encoder operates with AQ_Mode 0(adaptive quantization off). + */ + VP9E_SET_AQ_MODE, + + /*!\brief Codec control function to enable/disable periodic Q boost + * + * One VP9 encoder speed feature is to enable quality boost by lowering + * frame level Q periodically. This control function provides a mean to + * turn on/off this feature. + * 0 = off + * 1 = on + * + * By default, the encoder is allowed to use this feature for appropriate + * encoding modes. + */ + VP9E_SET_FRAME_PERIODIC_BOOST, + + /*!\brief control function to set noise sensitivity + * + * 0: off, 1: OnYOnly + */ + VP9E_SET_NOISE_SENSITIVITY, + + /*!\brief control function to turn on/off SVC in encoder. + * \note Return value is VPX_CODEC_INVALID_PARAM if the encoder does not + * support SVC in its current encoding mode + * 0: off, 1: on + */ + VP9E_SET_SVC, + + /*!\brief control function to set parameters for SVC. + * \note Parameters contain min_q, max_q, scaling factor for each of the + * SVC layers. + */ + VP9E_SET_SVC_PARAMETERS, + + /*!\brief control function to set svc layer for spatial and temporal. + * \note Valid ranges: 0..#vpx_codec_enc_cfg::ss_number_layers for spatial + * layer and 0..#vpx_codec_enc_cfg::ts_number_layers for + * temporal layer. + */ + VP9E_SET_SVC_LAYER_ID, + + /*!\brief control function to set content type. + * \note Valid parameter range: + * VP9E_CONTENT_DEFAULT = Regular video content (Default) + * VP9E_CONTENT_SCREEN = Screen capture content + */ + VP9E_SET_TUNE_CONTENT, + + /*!\brief control function to get svc layer ID. + * \note The layer ID returned is for the data packet from the registered + * callback function. + */ + VP9E_GET_SVC_LAYER_ID, + + /*!\brief control function to register callback for getting per layer packet. + * \note Parameter for this control function is a structure with a callback + * function and a pointer to private data used by the callback. + */ + VP9E_REGISTER_CX_CALLBACK, + + /*!\brief control function to set color space info. + * \note Valid ranges: 0..7, default is "UNKNOWN". + * 0 = UNKNOWN, + * 1 = BT_601 + * 2 = BT_709 + * 3 = SMPTE_170 + * 4 = SMPTE_240 + * 5 = BT_2020 + * 6 = RESERVED + * 7 = SRGB + */ + VP9E_SET_COLOR_SPACE, }; /*!\brief vpx 1-D scaling mode @@ -386,10 +386,10 @@ enum vp8e_enc_control_id { * This set of constants define 1-D vpx scaling modes */ typedef enum vpx_scaling_mode_1d { - VP8E_NORMAL = 0, - VP8E_FOURFIVE = 1, - VP8E_THREEFIVE = 2, - VP8E_ONETWO = 3 + VP8E_NORMAL = 0, + VP8E_FOURFIVE = 1, + VP8E_THREEFIVE = 2, + VP8E_ONETWO = 3 } VPX_SCALING_MODE; @@ -400,17 +400,17 @@ typedef enum vpx_scaling_mode_1d { */ typedef struct vpx_roi_map { - /*! An id between 0 and 3 for each 16x16 region within a frame. */ - unsigned char *roi_map; - unsigned int rows; /**< Number of rows. */ - unsigned int cols; /**< Number of columns. */ - // TODO(paulwilkins): broken for VP9 which has 8 segments - // q and loop filter deltas for each segment - // (see MAX_MB_SEGMENTS) - int delta_q[4]; /**< Quantizer deltas. */ - int delta_lf[4]; /**< Loop filter deltas. */ - /*! Static breakout threshold for each segment. */ - unsigned int static_threshold[4]; + /*! An id between 0 and 3 for each 16x16 region within a frame. */ + unsigned char *roi_map; + unsigned int rows; /**< Number of rows. */ + unsigned int cols; /**< Number of columns. */ + // TODO(paulwilkins): broken for VP9 which has 8 segments + // q and loop filter deltas for each segment + // (see MAX_MB_SEGMENTS) + int delta_q[4]; /**< Quantizer deltas. */ + int delta_lf[4]; /**< Loop filter deltas. */ + /*! Static breakout threshold for each segment. */ + unsigned int static_threshold[4]; } vpx_roi_map_t; /*!\brief vpx active region map @@ -421,9 +421,9 @@ typedef struct vpx_roi_map { typedef struct vpx_active_map { - unsigned char *active_map; /**< specify an on (1) or off (0) each 16x16 region within a frame */ - unsigned int rows; /**< number of rows */ - unsigned int cols; /**< number of cols */ + unsigned char *active_map; /**< specify an on (1) or off (0) each 16x16 region within a frame */ + unsigned int rows; /**< number of rows */ + unsigned int cols; /**< number of cols */ } vpx_active_map_t; /*!\brief vpx image scaling mode @@ -432,8 +432,8 @@ typedef struct vpx_active_map { * */ typedef struct vpx_scaling_mode { - VPX_SCALING_MODE h_scaling_mode; /**< horizontal scaling mode */ - VPX_SCALING_MODE v_scaling_mode; /**< vertical scaling mode */ + VPX_SCALING_MODE h_scaling_mode; /**< horizontal scaling mode */ + VPX_SCALING_MODE v_scaling_mode; /**< vertical scaling mode */ } vpx_scaling_mode_t; /*!\brief VP8 token partition mode @@ -444,17 +444,17 @@ typedef struct vpx_scaling_mode { */ typedef enum { - VP8_ONE_TOKENPARTITION = 0, - VP8_TWO_TOKENPARTITION = 1, - VP8_FOUR_TOKENPARTITION = 2, - VP8_EIGHT_TOKENPARTITION = 3 + VP8_ONE_TOKENPARTITION = 0, + VP8_TWO_TOKENPARTITION = 1, + VP8_FOUR_TOKENPARTITION = 2, + VP8_EIGHT_TOKENPARTITION = 3 } vp8e_token_partitions; /*!brief VP9 encoder content type */ typedef enum { - VP9E_CONTENT_DEFAULT, - VP9E_CONTENT_SCREEN, - VP9E_CONTENT_INVALID + VP9E_CONTENT_DEFAULT, + VP9E_CONTENT_SCREEN, + VP9E_CONTENT_INVALID } vp9e_tune_content; /*!\brief VP8 model tuning parameters @@ -463,8 +463,8 @@ typedef enum { * */ typedef enum { - VP8_TUNE_PSNR, - VP8_TUNE_SSIM + VP8_TUNE_PSNR, + VP8_TUNE_SSIM } vp8e_tuning; /*!\brief vp9 svc layer parameters @@ -475,8 +475,8 @@ typedef enum { * */ typedef struct vpx_svc_layer_id { - int spatial_layer_id; /**< Spatial layer id number. */ - int temporal_layer_id; /**< Temporal layer id number. */ + int spatial_layer_id; /**< Spatial layer id number. */ + int temporal_layer_id; /**< Temporal layer id number. */ } vpx_svc_layer_id_t; /*!\brief VP8 encoder control function parameter type diff --git a/thirdparties/iphone/include/vpx/vp8dx.h b/thirdparties/iphone/include/vpx/vp8dx.h index c5475c4..7996b63 100755 --- a/thirdparties/iphone/include/vpx/vp8dx.h +++ b/thirdparties/iphone/include/vpx/vp8dx.h @@ -52,50 +52,50 @@ extern vpx_codec_iface_t *vpx_codec_vp9_dx(void); * \sa #vpx_codec_control */ enum vp8_dec_control_id { - /** control function to get info on which reference frames were updated - * by the last decode - */ - VP8D_GET_LAST_REF_UPDATES = VP8_DECODER_CTRL_ID_START, - - /** check if the indicated frame is corrupted */ - VP8D_GET_FRAME_CORRUPTED, - - /** control function to get info on which reference frames were used - * by the last decode - */ - VP8D_GET_LAST_REF_USED, - - /** decryption function to decrypt encoded buffer data immediately - * before decoding. Takes a vpx_decrypt_init, which contains - * a callback function and opaque context pointer. - */ - VPXD_SET_DECRYPTOR, - VP8D_SET_DECRYPTOR = VPXD_SET_DECRYPTOR, - - /** control function to get the display dimensions for the current frame. */ - VP9D_GET_DISPLAY_SIZE, - - /** control function to get the bit depth of the stream. */ - VP9D_GET_BIT_DEPTH, - - /** control function to set the byte alignment of the planes in the reference - * buffers. Valid values are power of 2, from 32 to 1024. A value of 0 sets - * legacy alignment. I.e. Y plane is aligned to 32 bytes, U plane directly - * follows Y plane, and V plane directly follows U plane. Default value is 0. - */ - VP9_SET_BYTE_ALIGNMENT, - - /** control function to invert the decoding order to from right to left. The - * function is used in a test to confirm the decoding independence of tile - * columns. The function may be used in application where this order - * of decoding is desired. - * - * TODO(yaowu): Rework the unit test that uses this control, and in a future - * release, this test-only control shall be removed. - */ - VP9_INVERT_TILE_DECODE_ORDER, - - VP8_DECODER_CTRL_ID_MAX + /** control function to get info on which reference frames were updated + * by the last decode + */ + VP8D_GET_LAST_REF_UPDATES = VP8_DECODER_CTRL_ID_START, + + /** check if the indicated frame is corrupted */ + VP8D_GET_FRAME_CORRUPTED, + + /** control function to get info on which reference frames were used + * by the last decode + */ + VP8D_GET_LAST_REF_USED, + + /** decryption function to decrypt encoded buffer data immediately + * before decoding. Takes a vpx_decrypt_init, which contains + * a callback function and opaque context pointer. + */ + VPXD_SET_DECRYPTOR, + VP8D_SET_DECRYPTOR = VPXD_SET_DECRYPTOR, + + /** control function to get the display dimensions for the current frame. */ + VP9D_GET_DISPLAY_SIZE, + + /** control function to get the bit depth of the stream. */ + VP9D_GET_BIT_DEPTH, + + /** control function to set the byte alignment of the planes in the reference + * buffers. Valid values are power of 2, from 32 to 1024. A value of 0 sets + * legacy alignment. I.e. Y plane is aligned to 32 bytes, U plane directly + * follows Y plane, and V plane directly follows U plane. Default value is 0. + */ + VP9_SET_BYTE_ALIGNMENT, + + /** control function to invert the decoding order to from right to left. The + * function is used in a test to confirm the decoding independence of tile + * columns. The function may be used in application where this order + * of decoding is desired. + * + * TODO(yaowu): Rework the unit test that uses this control, and in a future + * release, this test-only control shall be removed. + */ + VP9_INVERT_TILE_DECODE_ORDER, + + VP8_DECODER_CTRL_ID_MAX }; /** Decrypt n bytes of data from input -> output, using the decrypt_state diff --git a/thirdparties/iphone/include/vpx/vpx_codec.h b/thirdparties/iphone/include/vpx/vpx_codec.h index b25308e..237d625 100755 --- a/thirdparties/iphone/include/vpx/vpx_codec.h +++ b/thirdparties/iphone/include/vpx/vpx_codec.h @@ -46,7 +46,7 @@ extern "C" { #include "./vpx_integer.h" #include "./vpx_image.h" - /*!\brief Decorator indicating a function is deprecated */ +/*!\brief Decorator indicating a function is deprecated */ #ifndef DEPRECATED #if defined(__GNUC__) && __GNUC__ #define DEPRECATED __attribute__ ((deprecated)) @@ -67,7 +67,7 @@ extern "C" { #endif #endif /* DECLSPEC_DEPRECATED */ - /*!\brief Decorator indicating a function is potentially unused */ +/*!\brief Decorator indicating a function is potentially unused */ #ifdef UNUSED #elif __GNUC__ #define UNUSED __attribute__ ((unused)) @@ -75,18 +75,18 @@ extern "C" { #define UNUSED #endif - /*!\brief Current ABI version number - * - * \internal - * If this file is altered in any way that changes the ABI, this value - * must be bumped. Examples include, but are not limited to, changing - * types, removing or reassigning enums, adding/removing/rearranging - * fields to structures - */ +/*!\brief Current ABI version number + * + * \internal + * If this file is altered in any way that changes the ABI, this value + * must be bumped. Examples include, but are not limited to, changing + * types, removing or reassigning enums, adding/removing/rearranging + * fields to structures + */ #define VPX_CODEC_ABI_VERSION (2 + VPX_IMAGE_ABI_VERSION) /**<\hideinitializer*/ - /*!\brief Algorithm return codes */ - typedef enum { +/*!\brief Algorithm return codes */ +typedef enum { /*!\brief Operation completed without error */ VPX_CODEC_OK, @@ -138,256 +138,256 @@ extern "C" { */ VPX_CODEC_LIST_END - } - vpx_codec_err_t; +} +vpx_codec_err_t; - /*! \brief Codec capabilities bitfield - * - * Each codec advertises the capabilities it supports as part of its - * ::vpx_codec_iface_t interface structure. Capabilities are extra interfaces - * or functionality, and are not required to be supported. - * - * The available flags are specified by VPX_CODEC_CAP_* defines. - */ - typedef long vpx_codec_caps_t; +/*! \brief Codec capabilities bitfield + * + * Each codec advertises the capabilities it supports as part of its + * ::vpx_codec_iface_t interface structure. Capabilities are extra interfaces + * or functionality, and are not required to be supported. + * + * The available flags are specified by VPX_CODEC_CAP_* defines. + */ +typedef long vpx_codec_caps_t; #define VPX_CODEC_CAP_DECODER 0x1 /**< Is a decoder */ #define VPX_CODEC_CAP_ENCODER 0x2 /**< Is an encoder */ - /*! \brief Initialization-time Feature Enabling - * - * Certain codec features must be known at initialization time, to allow for - * proper memory allocation. - * - * The available flags are specified by VPX_CODEC_USE_* defines. - */ - typedef long vpx_codec_flags_t; - - - /*!\brief Codec interface structure. - * - * Contains function pointers and other data private to the codec - * implementation. This structure is opaque to the application. - */ - typedef const struct vpx_codec_iface vpx_codec_iface_t; - - - /*!\brief Codec private data structure. - * - * Contains data private to the codec implementation. This structure is opaque - * to the application. - */ - typedef struct vpx_codec_priv vpx_codec_priv_t; - - - /*!\brief Iterator - * - * Opaque storage used for iterating over lists. - */ - typedef const void *vpx_codec_iter_t; - - - /*!\brief Codec context structure - * - * All codecs \ref MUST support this context structure fully. In general, - * this data should be considered private to the codec algorithm, and - * not be manipulated or examined by the calling application. Applications - * may reference the 'name' member to get a printable description of the - * algorithm. - */ - typedef struct vpx_codec_ctx { +/*! \brief Initialization-time Feature Enabling + * + * Certain codec features must be known at initialization time, to allow for + * proper memory allocation. + * + * The available flags are specified by VPX_CODEC_USE_* defines. + */ +typedef long vpx_codec_flags_t; + + +/*!\brief Codec interface structure. + * + * Contains function pointers and other data private to the codec + * implementation. This structure is opaque to the application. + */ +typedef const struct vpx_codec_iface vpx_codec_iface_t; + + +/*!\brief Codec private data structure. + * + * Contains data private to the codec implementation. This structure is opaque + * to the application. + */ +typedef struct vpx_codec_priv vpx_codec_priv_t; + + +/*!\brief Iterator + * + * Opaque storage used for iterating over lists. + */ +typedef const void *vpx_codec_iter_t; + + +/*!\brief Codec context structure + * + * All codecs \ref MUST support this context structure fully. In general, + * this data should be considered private to the codec algorithm, and + * not be manipulated or examined by the calling application. Applications + * may reference the 'name' member to get a printable description of the + * algorithm. + */ +typedef struct vpx_codec_ctx { const char *name; /**< Printable interface name */ vpx_codec_iface_t *iface; /**< Interface pointers */ vpx_codec_err_t err; /**< Last returned error */ const char *err_detail; /**< Detailed info, if available */ vpx_codec_flags_t init_flags; /**< Flags passed at init time */ union { - /**< Decoder Configuration Pointer */ - const struct vpx_codec_dec_cfg *dec; - /**< Encoder Configuration Pointer */ - const struct vpx_codec_enc_cfg *enc; - const void *raw; + /**< Decoder Configuration Pointer */ + const struct vpx_codec_dec_cfg *dec; + /**< Encoder Configuration Pointer */ + const struct vpx_codec_enc_cfg *enc; + const void *raw; } config; /**< Configuration pointer aliasing union */ vpx_codec_priv_t *priv; /**< Algorithm private storage */ - } vpx_codec_ctx_t; +} vpx_codec_ctx_t; - /*!\brief Bit depth for codec - * * - * This enumeration determines the bit depth of the codec. - */ - typedef enum vpx_bit_depth { +/*!\brief Bit depth for codec + * * + * This enumeration determines the bit depth of the codec. + */ +typedef enum vpx_bit_depth { VPX_BITS_8 = 8, /**< 8 bits */ VPX_BITS_10 = 10, /**< 10 bits */ VPX_BITS_12 = 12, /**< 12 bits */ - } vpx_bit_depth_t; - - /* - * Library Version Number Interface - * - * For example, see the following sample return values: - * vpx_codec_version() (1<<16 | 2<<8 | 3) - * vpx_codec_version_str() "v1.2.3-rc1-16-gec6a1ba" - * vpx_codec_version_extra_str() "rc1-16-gec6a1ba" - */ - - /*!\brief Return the version information (as an integer) - * - * Returns a packed encoding of the library version number. This will only include - * the major.minor.patch component of the version number. Note that this encoded - * value should be accessed through the macros provided, as the encoding may change - * in the future. - * - */ - int vpx_codec_version(void); +} vpx_bit_depth_t; + +/* + * Library Version Number Interface + * + * For example, see the following sample return values: + * vpx_codec_version() (1<<16 | 2<<8 | 3) + * vpx_codec_version_str() "v1.2.3-rc1-16-gec6a1ba" + * vpx_codec_version_extra_str() "rc1-16-gec6a1ba" + */ + +/*!\brief Return the version information (as an integer) + * + * Returns a packed encoding of the library version number. This will only include + * the major.minor.patch component of the version number. Note that this encoded + * value should be accessed through the macros provided, as the encoding may change + * in the future. + * + */ +int vpx_codec_version(void); #define VPX_VERSION_MAJOR(v) ((v>>16)&0xff) /**< extract major from packed version */ #define VPX_VERSION_MINOR(v) ((v>>8)&0xff) /**< extract minor from packed version */ #define VPX_VERSION_PATCH(v) ((v>>0)&0xff) /**< extract patch from packed version */ - /*!\brief Return the version major number */ +/*!\brief Return the version major number */ #define vpx_codec_version_major() ((vpx_codec_version()>>16)&0xff) - /*!\brief Return the version minor number */ +/*!\brief Return the version minor number */ #define vpx_codec_version_minor() ((vpx_codec_version()>>8)&0xff) - /*!\brief Return the version patch number */ +/*!\brief Return the version patch number */ #define vpx_codec_version_patch() ((vpx_codec_version()>>0)&0xff) - /*!\brief Return the version information (as a string) - * - * Returns a printable string containing the full library version number. This may - * contain additional text following the three digit version number, as to indicate - * release candidates, prerelease versions, etc. - * - */ - const char *vpx_codec_version_str(void); - - - /*!\brief Return the version information (as a string) - * - * Returns a printable "extra string". This is the component of the string returned - * by vpx_codec_version_str() following the three digit version number. - * - */ - const char *vpx_codec_version_extra_str(void); - - - /*!\brief Return the build configuration - * - * Returns a printable string containing an encoded version of the build - * configuration. This may be useful to vpx support. - * - */ - const char *vpx_codec_build_config(void); - - - /*!\brief Return the name for a given interface - * - * Returns a human readable string for name of the given codec interface. - * - * \param[in] iface Interface pointer - * - */ - const char *vpx_codec_iface_name(vpx_codec_iface_t *iface); - - - /*!\brief Convert error number to printable string - * - * Returns a human readable string for the last error returned by the - * algorithm. The returned error will be one line and will not contain - * any newline characters. - * - * - * \param[in] err Error number. - * - */ - const char *vpx_codec_err_to_string(vpx_codec_err_t err); - - - /*!\brief Retrieve error synopsis for codec context - * - * Returns a human readable string for the last error returned by the - * algorithm. The returned error will be one line and will not contain - * any newline characters. - * - * - * \param[in] ctx Pointer to this instance's context. - * - */ - const char *vpx_codec_error(vpx_codec_ctx_t *ctx); - - - /*!\brief Retrieve detailed error information for codec context - * - * Returns a human readable string providing detailed information about - * the last error. - * - * \param[in] ctx Pointer to this instance's context. - * - * \retval NULL - * No detailed information is available. - */ - const char *vpx_codec_error_detail(vpx_codec_ctx_t *ctx); - - - /* REQUIRED FUNCTIONS - * - * The following functions are required to be implemented for all codecs. - * They represent the base case functionality expected of all codecs. - */ - - /*!\brief Destroy a codec instance - * - * Destroys a codec context, freeing any associated memory buffers. - * - * \param[in] ctx Pointer to this instance's context - * - * \retval #VPX_CODEC_OK - * The codec algorithm initialized. - * \retval #VPX_CODEC_MEM_ERROR - * Memory allocation failed. - */ - vpx_codec_err_t vpx_codec_destroy(vpx_codec_ctx_t *ctx); - - - /*!\brief Get the capabilities of an algorithm. - * - * Retrieves the capabilities bitfield from the algorithm's interface. - * - * \param[in] iface Pointer to the algorithm interface - * - */ - vpx_codec_caps_t vpx_codec_get_caps(vpx_codec_iface_t *iface); - - - /*!\brief Control algorithm - * - * This function is used to exchange algorithm specific data with the codec - * instance. This can be used to implement features specific to a particular - * algorithm. - * - * This wrapper function dispatches the request to the helper function - * associated with the given ctrl_id. It tries to call this function - * transparently, but will return #VPX_CODEC_ERROR if the request could not - * be dispatched. - * - * Note that this function should not be used directly. Call the - * #vpx_codec_control wrapper macro instead. - * - * \param[in] ctx Pointer to this instance's context - * \param[in] ctrl_id Algorithm specific control identifier - * - * \retval #VPX_CODEC_OK - * The control request was processed. - * \retval #VPX_CODEC_ERROR - * The control request was not processed. - * \retval #VPX_CODEC_INVALID_PARAM - * The data was not valid. - */ - vpx_codec_err_t vpx_codec_control_(vpx_codec_ctx_t *ctx, - int ctrl_id, - ...); +/*!\brief Return the version information (as a string) + * + * Returns a printable string containing the full library version number. This may + * contain additional text following the three digit version number, as to indicate + * release candidates, prerelease versions, etc. + * + */ +const char *vpx_codec_version_str(void); + + +/*!\brief Return the version information (as a string) + * + * Returns a printable "extra string". This is the component of the string returned + * by vpx_codec_version_str() following the three digit version number. + * + */ +const char *vpx_codec_version_extra_str(void); + + +/*!\brief Return the build configuration + * + * Returns a printable string containing an encoded version of the build + * configuration. This may be useful to vpx support. + * + */ +const char *vpx_codec_build_config(void); + + +/*!\brief Return the name for a given interface + * + * Returns a human readable string for name of the given codec interface. + * + * \param[in] iface Interface pointer + * + */ +const char *vpx_codec_iface_name(vpx_codec_iface_t *iface); + + +/*!\brief Convert error number to printable string + * + * Returns a human readable string for the last error returned by the + * algorithm. The returned error will be one line and will not contain + * any newline characters. + * + * + * \param[in] err Error number. + * + */ +const char *vpx_codec_err_to_string(vpx_codec_err_t err); + + +/*!\brief Retrieve error synopsis for codec context + * + * Returns a human readable string for the last error returned by the + * algorithm. The returned error will be one line and will not contain + * any newline characters. + * + * + * \param[in] ctx Pointer to this instance's context. + * + */ +const char *vpx_codec_error(vpx_codec_ctx_t *ctx); + + +/*!\brief Retrieve detailed error information for codec context + * + * Returns a human readable string providing detailed information about + * the last error. + * + * \param[in] ctx Pointer to this instance's context. + * + * \retval NULL + * No detailed information is available. + */ +const char *vpx_codec_error_detail(vpx_codec_ctx_t *ctx); + + +/* REQUIRED FUNCTIONS + * + * The following functions are required to be implemented for all codecs. + * They represent the base case functionality expected of all codecs. + */ + +/*!\brief Destroy a codec instance + * + * Destroys a codec context, freeing any associated memory buffers. + * + * \param[in] ctx Pointer to this instance's context + * + * \retval #VPX_CODEC_OK + * The codec algorithm initialized. + * \retval #VPX_CODEC_MEM_ERROR + * Memory allocation failed. + */ +vpx_codec_err_t vpx_codec_destroy(vpx_codec_ctx_t *ctx); + + +/*!\brief Get the capabilities of an algorithm. + * + * Retrieves the capabilities bitfield from the algorithm's interface. + * + * \param[in] iface Pointer to the algorithm interface + * + */ +vpx_codec_caps_t vpx_codec_get_caps(vpx_codec_iface_t *iface); + + +/*!\brief Control algorithm + * + * This function is used to exchange algorithm specific data with the codec + * instance. This can be used to implement features specific to a particular + * algorithm. + * + * This wrapper function dispatches the request to the helper function + * associated with the given ctrl_id. It tries to call this function + * transparently, but will return #VPX_CODEC_ERROR if the request could not + * be dispatched. + * + * Note that this function should not be used directly. Call the + * #vpx_codec_control wrapper macro instead. + * + * \param[in] ctx Pointer to this instance's context + * \param[in] ctrl_id Algorithm specific control identifier + * + * \retval #VPX_CODEC_OK + * The control request was processed. + * \retval #VPX_CODEC_ERROR + * The control request was not processed. + * \retval #VPX_CODEC_INVALID_PARAM + * The data was not valid. + */ +vpx_codec_err_t vpx_codec_control_(vpx_codec_ctx_t *ctx, + int ctrl_id, + ...); #if defined(VPX_DISABLE_CTRL_TYPECHECKS) && VPX_DISABLE_CTRL_TYPECHECKS # define vpx_codec_control(ctx,id,data) vpx_codec_control_(ctx,id,data) # define VPX_CTRL_USE_TYPE(id, typ) @@ -395,30 +395,30 @@ extern "C" { # define VPX_CTRL_VOID(id, typ) #else - /*!\brief vpx_codec_control wrapper macro - * - * This macro allows for type safe conversions across the variadic parameter - * to vpx_codec_control_(). - * - * \internal - * It works by dispatching the call to the control function through a wrapper - * function named with the id parameter. - */ +/*!\brief vpx_codec_control wrapper macro + * + * This macro allows for type safe conversions across the variadic parameter + * to vpx_codec_control_(). + * + * \internal + * It works by dispatching the call to the control function through a wrapper + * function named with the id parameter. + */ # define vpx_codec_control(ctx,id,data) vpx_codec_control_##id(ctx,id,data)\ /**<\hideinitializer*/ - /*!\brief vpx_codec_control type definition macro - * - * This macro allows for type safe conversions across the variadic parameter - * to vpx_codec_control_(). It defines the type of the argument for a given - * control identifier. - * - * \internal - * It defines a static function with - * the correctly typed arguments as a wrapper to the type-unsafe internal - * function. - */ +/*!\brief vpx_codec_control type definition macro + * + * This macro allows for type safe conversions across the variadic parameter + * to vpx_codec_control_(). It defines the type of the argument for a given + * control identifier. + * + * \internal + * It defines a static function with + * the correctly typed arguments as a wrapper to the type-unsafe internal + * function. + */ # define VPX_CTRL_USE_TYPE(id, typ) \ static vpx_codec_err_t \ vpx_codec_control_##id(vpx_codec_ctx_t*, int, typ) UNUSED;\ @@ -429,16 +429,16 @@ extern "C" { } /**<\hideinitializer*/ - /*!\brief vpx_codec_control deprecated type definition macro - * - * Like #VPX_CTRL_USE_TYPE, but indicates that the specified control is - * deprecated and should not be used. Consult the documentation for your - * codec for more information. - * - * \internal - * It defines a static function with the correctly typed arguments as a - * wrapper to the type-unsafe internal function. - */ +/*!\brief vpx_codec_control deprecated type definition macro + * + * Like #VPX_CTRL_USE_TYPE, but indicates that the specified control is + * deprecated and should not be used. Consult the documentation for your + * codec for more information. + * + * \internal + * It defines a static function with the correctly typed arguments as a + * wrapper to the type-unsafe internal function. + */ # define VPX_CTRL_USE_TYPE_DEPRECATED(id, typ) \ DECLSPEC_DEPRECATED static vpx_codec_err_t \ vpx_codec_control_##id(vpx_codec_ctx_t*, int, typ) DEPRECATED UNUSED;\ @@ -449,16 +449,16 @@ extern "C" { } /**<\hideinitializer*/ - /*!\brief vpx_codec_control void type definition macro - * - * This macro allows for type safe conversions across the variadic parameter - * to vpx_codec_control_(). It indicates that a given control identifier takes - * no argument. - * - * \internal - * It defines a static function without a data argument as a wrapper to the - * type-unsafe internal function. - */ +/*!\brief vpx_codec_control void type definition macro + * + * This macro allows for type safe conversions across the variadic parameter + * to vpx_codec_control_(). It indicates that a given control identifier takes + * no argument. + * + * \internal + * It defines a static function without a data argument as a wrapper to the + * type-unsafe internal function. + */ # define VPX_CTRL_VOID(id) \ static vpx_codec_err_t \ vpx_codec_control_##id(vpx_codec_ctx_t*, int) UNUSED;\ @@ -471,7 +471,7 @@ extern "C" { #endif - /*!@} - end defgroup codec*/ +/*!@} - end defgroup codec*/ #ifdef __cplusplus } #endif diff --git a/thirdparties/iphone/include/vpx/vpx_decoder.h b/thirdparties/iphone/include/vpx/vpx_decoder.h index 62fd919..7fb13bd 100755 --- a/thirdparties/iphone/include/vpx/vpx_decoder.h +++ b/thirdparties/iphone/include/vpx/vpx_decoder.h @@ -32,24 +32,24 @@ extern "C" { #include "./vpx_codec.h" #include "./vpx_frame_buffer.h" - /*!\brief Current ABI version number - * - * \internal - * If this file is altered in any way that changes the ABI, this value - * must be bumped. Examples include, but are not limited to, changing - * types, removing or reassigning enums, adding/removing/rearranging - * fields to structures - */ +/*!\brief Current ABI version number + * + * \internal + * If this file is altered in any way that changes the ABI, this value + * must be bumped. Examples include, but are not limited to, changing + * types, removing or reassigning enums, adding/removing/rearranging + * fields to structures + */ #define VPX_DECODER_ABI_VERSION (3 + VPX_CODEC_ABI_VERSION) /**<\hideinitializer*/ - /*! \brief Decoder capabilities bitfield - * - * Each decoder advertises the capabilities it supports as part of its - * ::vpx_codec_iface_t interface structure. Capabilities are extra interfaces - * or functionality, and are not required to be supported by a decoder. - * - * The available flags are specified by VPX_CODEC_CAP_* defines. - */ +/*! \brief Decoder capabilities bitfield + * + * Each decoder advertises the capabilities it supports as part of its + * ::vpx_codec_iface_t interface structure. Capabilities are extra interfaces + * or functionality, and are not required to be supported by a decoder. + * + * The available flags are specified by VPX_CODEC_CAP_* defines. + */ #define VPX_CODEC_CAP_PUT_SLICE 0x10000 /**< Will issue put_slice callbacks */ #define VPX_CODEC_CAP_PUT_FRAME 0x20000 /**< Will issue put_frame callbacks */ #define VPX_CODEC_CAP_POSTPROC 0x40000 /**< Can postprocess decoded frame */ @@ -58,13 +58,13 @@ extern "C" { #define VPX_CODEC_CAP_INPUT_FRAGMENTS 0x100000 /**< Can receive encoded frames one fragment at a time */ - /*! \brief Initialization-time Feature Enabling - * - * Certain codec features must be known at initialization time, to allow for - * proper memory allocation. - * - * The available flags are specified by VPX_CODEC_USE_* defines. - */ +/*! \brief Initialization-time Feature Enabling + * + * Certain codec features must be known at initialization time, to allow for + * proper memory allocation. + * + * The available flags are specified by VPX_CODEC_USE_* defines. + */ #define VPX_CODEC_CAP_FRAME_THREADING 0x200000 /**< Can support frame-based multi-threading */ #define VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER 0x400000 /**< Can support external @@ -79,298 +79,298 @@ extern "C" { #define VPX_CODEC_USE_FRAME_THREADING 0x80000 /**< Enable frame-based multi-threading */ - /*!\brief Stream properties - * - * This structure is used to query or set properties of the decoded - * stream. Algorithms may extend this structure with data specific - * to their bitstream by setting the sz member appropriately. - */ - typedef struct vpx_codec_stream_info { +/*!\brief Stream properties + * + * This structure is used to query or set properties of the decoded + * stream. Algorithms may extend this structure with data specific + * to their bitstream by setting the sz member appropriately. + */ +typedef struct vpx_codec_stream_info { unsigned int sz; /**< Size of this structure */ unsigned int w; /**< Width (or 0 for unknown/default) */ unsigned int h; /**< Height (or 0 for unknown/default) */ unsigned int is_kf; /**< Current frame is a keyframe */ - } vpx_codec_stream_info_t; +} vpx_codec_stream_info_t; - /* REQUIRED FUNCTIONS - * - * The following functions are required to be implemented for all decoders. - * They represent the base case functionality expected of all decoders. - */ +/* REQUIRED FUNCTIONS + * + * The following functions are required to be implemented for all decoders. + * They represent the base case functionality expected of all decoders. + */ - /*!\brief Initialization Configurations - * - * This structure is used to pass init time configuration options to the - * decoder. - */ - typedef struct vpx_codec_dec_cfg { +/*!\brief Initialization Configurations + * + * This structure is used to pass init time configuration options to the + * decoder. + */ +typedef struct vpx_codec_dec_cfg { unsigned int threads; /**< Maximum number of threads to use, default 1 */ unsigned int w; /**< Width */ unsigned int h; /**< Height */ - } vpx_codec_dec_cfg_t; /**< alias for struct vpx_codec_dec_cfg */ - - - /*!\brief Initialize a decoder instance - * - * Initializes a decoder context using the given interface. Applications - * should call the vpx_codec_dec_init convenience macro instead of this - * function directly, to ensure that the ABI version number parameter - * is properly initialized. - * - * If the library was configured with --disable-multithread, this call - * is not thread safe and should be guarded with a lock if being used - * in a multithreaded context. - * - * \param[in] ctx Pointer to this instance's context. - * \param[in] iface Pointer to the algorithm interface to use. - * \param[in] cfg Configuration to use, if known. May be NULL. - * \param[in] flags Bitfield of VPX_CODEC_USE_* flags - * \param[in] ver ABI version number. Must be set to - * VPX_DECODER_ABI_VERSION - * \retval #VPX_CODEC_OK - * The decoder algorithm initialized. - * \retval #VPX_CODEC_MEM_ERROR - * Memory allocation failed. - */ - vpx_codec_err_t vpx_codec_dec_init_ver(vpx_codec_ctx_t *ctx, - vpx_codec_iface_t *iface, - const vpx_codec_dec_cfg_t *cfg, - vpx_codec_flags_t flags, - int ver); - - /*!\brief Convenience macro for vpx_codec_dec_init_ver() - * - * Ensures the ABI version parameter is properly set. - */ +} vpx_codec_dec_cfg_t; /**< alias for struct vpx_codec_dec_cfg */ + + +/*!\brief Initialize a decoder instance + * + * Initializes a decoder context using the given interface. Applications + * should call the vpx_codec_dec_init convenience macro instead of this + * function directly, to ensure that the ABI version number parameter + * is properly initialized. + * + * If the library was configured with --disable-multithread, this call + * is not thread safe and should be guarded with a lock if being used + * in a multithreaded context. + * + * \param[in] ctx Pointer to this instance's context. + * \param[in] iface Pointer to the algorithm interface to use. + * \param[in] cfg Configuration to use, if known. May be NULL. + * \param[in] flags Bitfield of VPX_CODEC_USE_* flags + * \param[in] ver ABI version number. Must be set to + * VPX_DECODER_ABI_VERSION + * \retval #VPX_CODEC_OK + * The decoder algorithm initialized. + * \retval #VPX_CODEC_MEM_ERROR + * Memory allocation failed. + */ +vpx_codec_err_t vpx_codec_dec_init_ver(vpx_codec_ctx_t *ctx, + vpx_codec_iface_t *iface, + const vpx_codec_dec_cfg_t *cfg, + vpx_codec_flags_t flags, + int ver); + +/*!\brief Convenience macro for vpx_codec_dec_init_ver() + * + * Ensures the ABI version parameter is properly set. + */ #define vpx_codec_dec_init(ctx, iface, cfg, flags) \ vpx_codec_dec_init_ver(ctx, iface, cfg, flags, VPX_DECODER_ABI_VERSION) - /*!\brief Parse stream info from a buffer - * - * Performs high level parsing of the bitstream. Construction of a decoder - * context is not necessary. Can be used to determine if the bitstream is - * of the proper format, and to extract information from the stream. - * - * \param[in] iface Pointer to the algorithm interface - * \param[in] data Pointer to a block of data to parse - * \param[in] data_sz Size of the data buffer - * \param[in,out] si Pointer to stream info to update. The size member - * \ref MUST be properly initialized, but \ref MAY be - * clobbered by the algorithm. This parameter \ref MAY - * be NULL. - * - * \retval #VPX_CODEC_OK - * Bitstream is parsable and stream information updated - */ - vpx_codec_err_t vpx_codec_peek_stream_info(vpx_codec_iface_t *iface, - const uint8_t *data, - unsigned int data_sz, - vpx_codec_stream_info_t *si); - - - /*!\brief Return information about the current stream. - * - * Returns information about the stream that has been parsed during decoding. - * - * \param[in] ctx Pointer to this instance's context - * \param[in,out] si Pointer to stream info to update. The size member - * \ref MUST be properly initialized, but \ref MAY be - * clobbered by the algorithm. This parameter \ref MAY - * be NULL. - * - * \retval #VPX_CODEC_OK - * Bitstream is parsable and stream information updated - */ - vpx_codec_err_t vpx_codec_get_stream_info(vpx_codec_ctx_t *ctx, - vpx_codec_stream_info_t *si); - - - /*!\brief Decode data - * - * Processes a buffer of coded data. If the processing results in a new - * decoded frame becoming available, PUT_SLICE and PUT_FRAME events may be - * generated, as appropriate. Encoded data \ref MUST be passed in DTS (decode - * time stamp) order. Frames produced will always be in PTS (presentation - * time stamp) order. - * If the decoder is configured with VPX_CODEC_USE_INPUT_FRAGMENTS enabled, - * data and data_sz can contain a fragment of the encoded frame. Fragment - * \#n must contain at least partition \#n, but can also contain subsequent - * partitions (\#n+1 - \#n+i), and if so, fragments \#n+1, .., \#n+i must - * be empty. When no more data is available, this function should be called - * with NULL as data and 0 as data_sz. The memory passed to this function - * must be available until the frame has been decoded. - * - * \param[in] ctx Pointer to this instance's context - * \param[in] data Pointer to this block of new coded data. If - * NULL, a VPX_CODEC_CB_PUT_FRAME event is posted - * for the previously decoded frame. - * \param[in] data_sz Size of the coded data, in bytes. - * \param[in] user_priv Application specific data to associate with - * this frame. - * \param[in] deadline Soft deadline the decoder should attempt to meet, - * in us. Set to zero for unlimited. - * - * \return Returns #VPX_CODEC_OK if the coded data was processed completely - * and future pictures can be decoded without error. Otherwise, - * see the descriptions of the other error codes in ::vpx_codec_err_t - * for recoverability capabilities. - */ - vpx_codec_err_t vpx_codec_decode(vpx_codec_ctx_t *ctx, - const uint8_t *data, - unsigned int data_sz, - void *user_priv, - long deadline); - - - /*!\brief Decoded frames iterator - * - * Iterates over a list of the frames available for display. The iterator - * storage should be initialized to NULL to start the iteration. Iteration is - * complete when this function returns NULL. - * - * The list of available frames becomes valid upon completion of the - * vpx_codec_decode call, and remains valid until the next call to vpx_codec_decode. - * - * \param[in] ctx Pointer to this instance's context - * \param[in,out] iter Iterator storage, initialized to NULL - * - * \return Returns a pointer to an image, if one is ready for display. Frames - * produced will always be in PTS (presentation time stamp) order. - */ - vpx_image_t *vpx_codec_get_frame(vpx_codec_ctx_t *ctx, - vpx_codec_iter_t *iter); - - - /*!\defgroup cap_put_frame Frame-Based Decoding Functions - * - * The following functions are required to be implemented for all decoders - * that advertise the VPX_CODEC_CAP_PUT_FRAME capability. Calling these functions - * for codecs that don't advertise this capability will result in an error - * code being returned, usually VPX_CODEC_ERROR - * @{ - */ - - /*!\brief put frame callback prototype - * - * This callback is invoked by the decoder to notify the application of - * the availability of decoded image data. - */ - typedef void (*vpx_codec_put_frame_cb_fn_t)(void *user_priv, - const vpx_image_t *img); - - - /*!\brief Register for notification of frame completion. - * - * Registers a given function to be called when a decoded frame is - * available. - * - * \param[in] ctx Pointer to this instance's context - * \param[in] cb Pointer to the callback function - * \param[in] user_priv User's private data - * - * \retval #VPX_CODEC_OK - * Callback successfully registered. - * \retval #VPX_CODEC_ERROR - * Decoder context not initialized, or algorithm not capable of - * posting slice completion. - */ - vpx_codec_err_t vpx_codec_register_put_frame_cb(vpx_codec_ctx_t *ctx, - vpx_codec_put_frame_cb_fn_t cb, - void *user_priv); - - - /*!@} - end defgroup cap_put_frame */ - - /*!\defgroup cap_put_slice Slice-Based Decoding Functions - * - * The following functions are required to be implemented for all decoders - * that advertise the VPX_CODEC_CAP_PUT_SLICE capability. Calling these functions - * for codecs that don't advertise this capability will result in an error - * code being returned, usually VPX_CODEC_ERROR - * @{ - */ - - /*!\brief put slice callback prototype - * - * This callback is invoked by the decoder to notify the application of - * the availability of partially decoded image data. The - */ - typedef void (*vpx_codec_put_slice_cb_fn_t)(void *user_priv, - const vpx_image_t *img, - const vpx_image_rect_t *valid, - const vpx_image_rect_t *update); - - - /*!\brief Register for notification of slice completion. - * - * Registers a given function to be called when a decoded slice is - * available. - * - * \param[in] ctx Pointer to this instance's context - * \param[in] cb Pointer to the callback function - * \param[in] user_priv User's private data - * - * \retval #VPX_CODEC_OK - * Callback successfully registered. - * \retval #VPX_CODEC_ERROR - * Decoder context not initialized, or algorithm not capable of - * posting slice completion. - */ - vpx_codec_err_t vpx_codec_register_put_slice_cb(vpx_codec_ctx_t *ctx, - vpx_codec_put_slice_cb_fn_t cb, - void *user_priv); - - - /*!@} - end defgroup cap_put_slice*/ - - /*!\defgroup cap_external_frame_buffer External Frame Buffer Functions - * - * The following section is required to be implemented for all decoders - * that advertise the VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER capability. - * Calling this function for codecs that don't advertise this capability - * will result in an error code being returned, usually VPX_CODEC_ERROR. - * - * \note - * Currently this only works with VP9. - * @{ - */ - - /*!\brief Pass in external frame buffers for the decoder to use. - * - * Registers functions to be called when libvpx needs a frame buffer - * to decode the current frame and a function to be called when libvpx does - * not internally reference the frame buffer. This set function must - * be called before the first call to decode or libvpx will assume the - * default behavior of allocating frame buffers internally. - * - * \param[in] ctx Pointer to this instance's context - * \param[in] cb_get Pointer to the get callback function - * \param[in] cb_release Pointer to the release callback function - * \param[in] cb_priv Callback's private data - * - * \retval #VPX_CODEC_OK - * External frame buffers will be used by libvpx. - * \retval #VPX_CODEC_INVALID_PARAM - * One or more of the callbacks were NULL. - * \retval #VPX_CODEC_ERROR - * Decoder context not initialized, or algorithm not capable of - * using external frame buffers. - * - * \note - * When decoding VP9, the application may be required to pass in at least - * #VP9_MAXIMUM_REF_BUFFERS + #VPX_MAXIMUM_WORK_BUFFERS external frame - * buffers. - */ - vpx_codec_err_t vpx_codec_set_frame_buffer_functions( - vpx_codec_ctx_t *ctx, - vpx_get_frame_buffer_cb_fn_t cb_get, - vpx_release_frame_buffer_cb_fn_t cb_release, void *cb_priv); - - /*!@} - end defgroup cap_external_frame_buffer */ - - /*!@} - end defgroup decoder*/ +/*!\brief Parse stream info from a buffer + * + * Performs high level parsing of the bitstream. Construction of a decoder + * context is not necessary. Can be used to determine if the bitstream is + * of the proper format, and to extract information from the stream. + * + * \param[in] iface Pointer to the algorithm interface + * \param[in] data Pointer to a block of data to parse + * \param[in] data_sz Size of the data buffer + * \param[in,out] si Pointer to stream info to update. The size member + * \ref MUST be properly initialized, but \ref MAY be + * clobbered by the algorithm. This parameter \ref MAY + * be NULL. + * + * \retval #VPX_CODEC_OK + * Bitstream is parsable and stream information updated + */ +vpx_codec_err_t vpx_codec_peek_stream_info(vpx_codec_iface_t *iface, + const uint8_t *data, + unsigned int data_sz, + vpx_codec_stream_info_t *si); + + +/*!\brief Return information about the current stream. + * + * Returns information about the stream that has been parsed during decoding. + * + * \param[in] ctx Pointer to this instance's context + * \param[in,out] si Pointer to stream info to update. The size member + * \ref MUST be properly initialized, but \ref MAY be + * clobbered by the algorithm. This parameter \ref MAY + * be NULL. + * + * \retval #VPX_CODEC_OK + * Bitstream is parsable and stream information updated + */ +vpx_codec_err_t vpx_codec_get_stream_info(vpx_codec_ctx_t *ctx, + vpx_codec_stream_info_t *si); + + +/*!\brief Decode data + * + * Processes a buffer of coded data. If the processing results in a new + * decoded frame becoming available, PUT_SLICE and PUT_FRAME events may be + * generated, as appropriate. Encoded data \ref MUST be passed in DTS (decode + * time stamp) order. Frames produced will always be in PTS (presentation + * time stamp) order. + * If the decoder is configured with VPX_CODEC_USE_INPUT_FRAGMENTS enabled, + * data and data_sz can contain a fragment of the encoded frame. Fragment + * \#n must contain at least partition \#n, but can also contain subsequent + * partitions (\#n+1 - \#n+i), and if so, fragments \#n+1, .., \#n+i must + * be empty. When no more data is available, this function should be called + * with NULL as data and 0 as data_sz. The memory passed to this function + * must be available until the frame has been decoded. + * + * \param[in] ctx Pointer to this instance's context + * \param[in] data Pointer to this block of new coded data. If + * NULL, a VPX_CODEC_CB_PUT_FRAME event is posted + * for the previously decoded frame. + * \param[in] data_sz Size of the coded data, in bytes. + * \param[in] user_priv Application specific data to associate with + * this frame. + * \param[in] deadline Soft deadline the decoder should attempt to meet, + * in us. Set to zero for unlimited. + * + * \return Returns #VPX_CODEC_OK if the coded data was processed completely + * and future pictures can be decoded without error. Otherwise, + * see the descriptions of the other error codes in ::vpx_codec_err_t + * for recoverability capabilities. + */ +vpx_codec_err_t vpx_codec_decode(vpx_codec_ctx_t *ctx, + const uint8_t *data, + unsigned int data_sz, + void *user_priv, + long deadline); + + +/*!\brief Decoded frames iterator + * + * Iterates over a list of the frames available for display. The iterator + * storage should be initialized to NULL to start the iteration. Iteration is + * complete when this function returns NULL. + * + * The list of available frames becomes valid upon completion of the + * vpx_codec_decode call, and remains valid until the next call to vpx_codec_decode. + * + * \param[in] ctx Pointer to this instance's context + * \param[in,out] iter Iterator storage, initialized to NULL + * + * \return Returns a pointer to an image, if one is ready for display. Frames + * produced will always be in PTS (presentation time stamp) order. + */ +vpx_image_t *vpx_codec_get_frame(vpx_codec_ctx_t *ctx, + vpx_codec_iter_t *iter); + + +/*!\defgroup cap_put_frame Frame-Based Decoding Functions + * + * The following functions are required to be implemented for all decoders + * that advertise the VPX_CODEC_CAP_PUT_FRAME capability. Calling these functions + * for codecs that don't advertise this capability will result in an error + * code being returned, usually VPX_CODEC_ERROR + * @{ + */ + +/*!\brief put frame callback prototype + * + * This callback is invoked by the decoder to notify the application of + * the availability of decoded image data. + */ +typedef void (*vpx_codec_put_frame_cb_fn_t)(void *user_priv, + const vpx_image_t *img); + + +/*!\brief Register for notification of frame completion. + * + * Registers a given function to be called when a decoded frame is + * available. + * + * \param[in] ctx Pointer to this instance's context + * \param[in] cb Pointer to the callback function + * \param[in] user_priv User's private data + * + * \retval #VPX_CODEC_OK + * Callback successfully registered. + * \retval #VPX_CODEC_ERROR + * Decoder context not initialized, or algorithm not capable of + * posting slice completion. + */ +vpx_codec_err_t vpx_codec_register_put_frame_cb(vpx_codec_ctx_t *ctx, + vpx_codec_put_frame_cb_fn_t cb, + void *user_priv); + + +/*!@} - end defgroup cap_put_frame */ + +/*!\defgroup cap_put_slice Slice-Based Decoding Functions + * + * The following functions are required to be implemented for all decoders + * that advertise the VPX_CODEC_CAP_PUT_SLICE capability. Calling these functions + * for codecs that don't advertise this capability will result in an error + * code being returned, usually VPX_CODEC_ERROR + * @{ + */ + +/*!\brief put slice callback prototype + * + * This callback is invoked by the decoder to notify the application of + * the availability of partially decoded image data. The + */ +typedef void (*vpx_codec_put_slice_cb_fn_t)(void *user_priv, + const vpx_image_t *img, + const vpx_image_rect_t *valid, + const vpx_image_rect_t *update); + + +/*!\brief Register for notification of slice completion. + * + * Registers a given function to be called when a decoded slice is + * available. + * + * \param[in] ctx Pointer to this instance's context + * \param[in] cb Pointer to the callback function + * \param[in] user_priv User's private data + * + * \retval #VPX_CODEC_OK + * Callback successfully registered. + * \retval #VPX_CODEC_ERROR + * Decoder context not initialized, or algorithm not capable of + * posting slice completion. + */ +vpx_codec_err_t vpx_codec_register_put_slice_cb(vpx_codec_ctx_t *ctx, + vpx_codec_put_slice_cb_fn_t cb, + void *user_priv); + + +/*!@} - end defgroup cap_put_slice*/ + +/*!\defgroup cap_external_frame_buffer External Frame Buffer Functions + * + * The following section is required to be implemented for all decoders + * that advertise the VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER capability. + * Calling this function for codecs that don't advertise this capability + * will result in an error code being returned, usually VPX_CODEC_ERROR. + * + * \note + * Currently this only works with VP9. + * @{ + */ + +/*!\brief Pass in external frame buffers for the decoder to use. + * + * Registers functions to be called when libvpx needs a frame buffer + * to decode the current frame and a function to be called when libvpx does + * not internally reference the frame buffer. This set function must + * be called before the first call to decode or libvpx will assume the + * default behavior of allocating frame buffers internally. + * + * \param[in] ctx Pointer to this instance's context + * \param[in] cb_get Pointer to the get callback function + * \param[in] cb_release Pointer to the release callback function + * \param[in] cb_priv Callback's private data + * + * \retval #VPX_CODEC_OK + * External frame buffers will be used by libvpx. + * \retval #VPX_CODEC_INVALID_PARAM + * One or more of the callbacks were NULL. + * \retval #VPX_CODEC_ERROR + * Decoder context not initialized, or algorithm not capable of + * using external frame buffers. + * + * \note + * When decoding VP9, the application may be required to pass in at least + * #VP9_MAXIMUM_REF_BUFFERS + #VPX_MAXIMUM_WORK_BUFFERS external frame + * buffers. + */ +vpx_codec_err_t vpx_codec_set_frame_buffer_functions( + vpx_codec_ctx_t *ctx, + vpx_get_frame_buffer_cb_fn_t cb_get, + vpx_release_frame_buffer_cb_fn_t cb_release, void *cb_priv); + +/*!@} - end defgroup cap_external_frame_buffer */ + +/*!@} - end defgroup decoder*/ #ifdef __cplusplus } #endif diff --git a/thirdparties/iphone/include/vpx/vpx_encoder.h b/thirdparties/iphone/include/vpx/vpx_encoder.h index 8f7bff5..4006856 100755 --- a/thirdparties/iphone/include/vpx/vpx_encoder.h +++ b/thirdparties/iphone/include/vpx/vpx_encoder.h @@ -31,18 +31,18 @@ extern "C" { #include "./vpx_codec.h" - /*! Temporal Scalability: Maximum length of the sequence defining frame - * layer membership - */ +/*! Temporal Scalability: Maximum length of the sequence defining frame + * layer membership + */ #define VPX_TS_MAX_PERIODICITY 16 - /*! Temporal Scalability: Maximum number of coding layers */ +/*! Temporal Scalability: Maximum number of coding layers */ #define VPX_TS_MAX_LAYERS 5 - /*!\deprecated Use #VPX_TS_MAX_PERIODICITY instead. */ +/*!\deprecated Use #VPX_TS_MAX_PERIODICITY instead. */ #define MAX_PERIODICITY VPX_TS_MAX_PERIODICITY - /*!\deprecated Use #VPX_TS_MAX_LAYERS instead. */ +/*!\deprecated Use #VPX_TS_MAX_LAYERS instead. */ #define MAX_LAYERS VPX_TS_MAX_LAYERS /*! Spatial Scalability: Maximum number of coding layers */ @@ -51,78 +51,78 @@ extern "C" { /*! Spatial Scalability: Default number of coding layers */ #define VPX_SS_DEFAULT_LAYERS 1 - /*!\brief Current ABI version number - * - * \internal - * If this file is altered in any way that changes the ABI, this value - * must be bumped. Examples include, but are not limited to, changing - * types, removing or reassigning enums, adding/removing/rearranging - * fields to structures - */ +/*!\brief Current ABI version number + * + * \internal + * If this file is altered in any way that changes the ABI, this value + * must be bumped. Examples include, but are not limited to, changing + * types, removing or reassigning enums, adding/removing/rearranging + * fields to structures + */ #define VPX_ENCODER_ABI_VERSION (3 + VPX_CODEC_ABI_VERSION) /**<\hideinitializer*/ - /*! \brief Encoder capabilities bitfield - * - * Each encoder advertises the capabilities it supports as part of its - * ::vpx_codec_iface_t interface structure. Capabilities are extra - * interfaces or functionality, and are not required to be supported - * by an encoder. - * - * The available flags are specified by VPX_CODEC_CAP_* defines. - */ +/*! \brief Encoder capabilities bitfield + * + * Each encoder advertises the capabilities it supports as part of its + * ::vpx_codec_iface_t interface structure. Capabilities are extra + * interfaces or functionality, and are not required to be supported + * by an encoder. + * + * The available flags are specified by VPX_CODEC_CAP_* defines. + */ #define VPX_CODEC_CAP_PSNR 0x10000 /**< Can issue PSNR packets */ - /*! Can output one partition at a time. Each partition is returned in its - * own VPX_CODEC_CX_FRAME_PKT, with the FRAME_IS_FRAGMENT flag set for - * every partition but the last. In this mode all frames are always - * returned partition by partition. - */ +/*! Can output one partition at a time. Each partition is returned in its + * own VPX_CODEC_CX_FRAME_PKT, with the FRAME_IS_FRAGMENT flag set for + * every partition but the last. In this mode all frames are always + * returned partition by partition. + */ #define VPX_CODEC_CAP_OUTPUT_PARTITION 0x20000 /*! Can support input images at greater than 8 bitdepth. */ #define VPX_CODEC_CAP_HIGHBITDEPTH 0x40000 - /*! \brief Initialization-time Feature Enabling - * - * Certain codec features must be known at initialization time, to allow - * for proper memory allocation. - * - * The available flags are specified by VPX_CODEC_USE_* defines. - */ +/*! \brief Initialization-time Feature Enabling + * + * Certain codec features must be known at initialization time, to allow + * for proper memory allocation. + * + * The available flags are specified by VPX_CODEC_USE_* defines. + */ #define VPX_CODEC_USE_PSNR 0x10000 /**< Calculate PSNR on each frame */ #define VPX_CODEC_USE_OUTPUT_PARTITION 0x20000 /**< Make the encoder output one partition at a time. */ #define VPX_CODEC_USE_HIGHBITDEPTH 0x40000 /**< Use high bitdepth */ - /*!\brief Generic fixed size buffer structure - * - * This structure is able to hold a reference to any fixed size buffer. - */ - typedef struct vpx_fixed_buf { +/*!\brief Generic fixed size buffer structure + * + * This structure is able to hold a reference to any fixed size buffer. + */ +typedef struct vpx_fixed_buf { void *buf; /**< Pointer to the data */ size_t sz; /**< Length of the buffer, in chars */ - } vpx_fixed_buf_t; /**< alias for struct vpx_fixed_buf */ +} vpx_fixed_buf_t; /**< alias for struct vpx_fixed_buf */ - /*!\brief Time Stamp Type - * - * An integer, which when multiplied by the stream's time base, provides - * the absolute time of a sample. - */ - typedef int64_t vpx_codec_pts_t; +/*!\brief Time Stamp Type + * + * An integer, which when multiplied by the stream's time base, provides + * the absolute time of a sample. + */ +typedef int64_t vpx_codec_pts_t; - /*!\brief Compressed Frame Flags - * - * This type represents a bitfield containing information about a compressed - * frame that may be useful to an application. The most significant 16 bits - * can be used by an algorithm to provide additional detail, for example to - * support frame types that are codec specific (MPEG-1 D-frames for example) - */ - typedef uint32_t vpx_codec_frame_flags_t; +/*!\brief Compressed Frame Flags + * + * This type represents a bitfield containing information about a compressed + * frame that may be useful to an application. The most significant 16 bits + * can be used by an algorithm to provide additional detail, for example to + * support frame types that are codec specific (MPEG-1 D-frames for example) + */ +typedef uint32_t vpx_codec_frame_flags_t; #define VPX_FRAME_IS_KEY 0x1 /**< frame is the start of a GOP */ #define VPX_FRAME_IS_DROPPABLE 0x2 /**< frame can be dropped without affecting the stream (no future frame depends on @@ -132,13 +132,13 @@ extern "C" { #define VPX_FRAME_IS_FRAGMENT 0x8 /**< this is a fragment of the encoded frame */ - /*!\brief Error Resilient flags - * - * These flags define which error resilient features to enable in the - * encoder. The flags are specified through the - * vpx_codec_enc_cfg::g_error_resilient variable. - */ - typedef uint32_t vpx_codec_er_flags_t; +/*!\brief Error Resilient flags + * + * These flags define which error resilient features to enable in the + * encoder. The flags are specified through the + * vpx_codec_enc_cfg::g_error_resilient variable. + */ +typedef uint32_t vpx_codec_er_flags_t; #define VPX_ERROR_RESILIENT_DEFAULT 0x1 /**< Improve resiliency against losses of whole frames */ #define VPX_ERROR_RESILIENT_PARTITIONS 0x2 /**< The frame partitions are @@ -150,13 +150,13 @@ extern "C" { predicition is still done over the partition boundary. */ - /*!\brief Encoder output packet variants - * - * This enumeration lists the different kinds of data packets that can be - * returned by calls to vpx_codec_get_cx_data(). Algorithms \ref MAY - * extend this list to provide additional functionality. - */ - enum vpx_codec_cx_pkt_kind { +/*!\brief Encoder output packet variants + * + * This enumeration lists the different kinds of data packets that can be + * returned by calls to vpx_codec_get_cx_data(). Algorithms \ref MAY + * extend this list to provide additional functionality. + */ +enum vpx_codec_cx_pkt_kind { VPX_CODEC_CX_FRAME_PKT, /**< Compressed video frame */ VPX_CODEC_STATS_PKT, /**< Two-pass statistics for this frame */ VPX_CODEC_FPMB_STATS_PKT, /**< first pass mb statistics for this frame */ @@ -168,134 +168,134 @@ extern "C" { VPX_CODEC_SPATIAL_SVC_LAYER_PSNR, /**< PSNR for each layer in this frame*/ #endif VPX_CODEC_CUSTOM_PKT = 256 /**< Algorithm extensions */ - }; +}; - /*!\brief Encoder output packet - * - * This structure contains the different kinds of output data the encoder - * may produce while compressing a frame. - */ - typedef struct vpx_codec_cx_pkt { +/*!\brief Encoder output packet + * + * This structure contains the different kinds of output data the encoder + * may produce while compressing a frame. + */ +typedef struct vpx_codec_cx_pkt { enum vpx_codec_cx_pkt_kind kind; /**< packet variant */ union { - struct { - void *buf; /**< compressed data buffer */ - size_t sz; /**< length of compressed data */ - vpx_codec_pts_t pts; /**< time stamp to show frame + struct { + void *buf; /**< compressed data buffer */ + size_t sz; /**< length of compressed data */ + vpx_codec_pts_t pts; /**< time stamp to show frame (in timebase units) */ - unsigned long duration; /**< duration to show frame + unsigned long duration; /**< duration to show frame (in timebase units) */ - vpx_codec_frame_flags_t flags; /**< flags for this frame */ - int partition_id; /**< the partition id + vpx_codec_frame_flags_t flags; /**< flags for this frame */ + int partition_id; /**< the partition id defines the decoding order of the partitions. Only applicable when "output partition" mode is enabled. First partition has id 0.*/ - } frame; /**< data for compressed frame packet */ - vpx_fixed_buf_t twopass_stats; /**< data for two-pass packet */ - vpx_fixed_buf_t firstpass_mb_stats; /**< first pass mb packet */ - struct vpx_psnr_pkt { - unsigned int samples[4]; /**< Number of samples, total/y/u/v */ - uint64_t sse[4]; /**< sum squared error, total/y/u/v */ - double psnr[4]; /**< PSNR, total/y/u/v */ - } psnr; /**< data for PSNR packet */ - vpx_fixed_buf_t raw; /**< data for arbitrary packets */ - // TODO(minghai): This is for testing purporses. The released library - // can't depend on vpx_config.h + } frame; /**< data for compressed frame packet */ + vpx_fixed_buf_t twopass_stats; /**< data for two-pass packet */ + vpx_fixed_buf_t firstpass_mb_stats; /**< first pass mb packet */ + struct vpx_psnr_pkt { + unsigned int samples[4]; /**< Number of samples, total/y/u/v */ + uint64_t sse[4]; /**< sum squared error, total/y/u/v */ + double psnr[4]; /**< PSNR, total/y/u/v */ + } psnr; /**< data for PSNR packet */ + vpx_fixed_buf_t raw; /**< data for arbitrary packets */ + // TODO(minghai): This is for testing purporses. The released library + // can't depend on vpx_config.h #if defined(CONFIG_SPATIAL_SVC) && CONFIG_SPATIAL_SVC - size_t layer_sizes[VPX_SS_MAX_LAYERS]; - struct vpx_psnr_pkt layer_psnr[VPX_SS_MAX_LAYERS]; + size_t layer_sizes[VPX_SS_MAX_LAYERS]; + struct vpx_psnr_pkt layer_psnr[VPX_SS_MAX_LAYERS]; #endif - /* This packet size is fixed to allow codecs to extend this - * interface without having to manage storage for raw packets, - * i.e., if it's smaller than 128 bytes, you can store in the - * packet list directly. - */ - char pad[128 - sizeof(enum vpx_codec_cx_pkt_kind)]; /**< fixed sz */ + /* This packet size is fixed to allow codecs to extend this + * interface without having to manage storage for raw packets, + * i.e., if it's smaller than 128 bytes, you can store in the + * packet list directly. + */ + char pad[128 - sizeof(enum vpx_codec_cx_pkt_kind)]; /**< fixed sz */ } data; /**< packet data */ - } vpx_codec_cx_pkt_t; /**< alias for struct vpx_codec_cx_pkt */ +} vpx_codec_cx_pkt_t; /**< alias for struct vpx_codec_cx_pkt */ - /*!\brief Encoder return output buffer callback - * - * This callback function, when registered, returns with packets when each - * spatial layer is encoded. - */ - // putting the definitions here for now. (agrange: find if there - // is a better place for this) - typedef void (* vpx_codec_enc_output_cx_pkt_cb_fn_t)(vpx_codec_cx_pkt_t *pkt, - void *user_data); +/*!\brief Encoder return output buffer callback + * + * This callback function, when registered, returns with packets when each + * spatial layer is encoded. + */ +// putting the definitions here for now. (agrange: find if there +// is a better place for this) +typedef void (* vpx_codec_enc_output_cx_pkt_cb_fn_t)(vpx_codec_cx_pkt_t *pkt, + void *user_data); - /*!\brief Callback function pointer / user data pair storage */ - typedef struct vpx_codec_enc_output_cx_cb_pair { +/*!\brief Callback function pointer / user data pair storage */ +typedef struct vpx_codec_enc_output_cx_cb_pair { vpx_codec_enc_output_cx_pkt_cb_fn_t output_cx_pkt; /**< Callback function */ void *user_priv; /**< Pointer to private data */ - } vpx_codec_priv_output_cx_pkt_cb_pair_t; +} vpx_codec_priv_output_cx_pkt_cb_pair_t; - /*!\brief Rational Number - * - * This structure holds a fractional value. - */ - typedef struct vpx_rational { +/*!\brief Rational Number + * + * This structure holds a fractional value. + */ +typedef struct vpx_rational { int num; /**< fraction numerator */ int den; /**< fraction denominator */ - } vpx_rational_t; /**< alias for struct vpx_rational */ +} vpx_rational_t; /**< alias for struct vpx_rational */ - /*!\brief Multi-pass Encoding Pass */ - enum vpx_enc_pass { +/*!\brief Multi-pass Encoding Pass */ +enum vpx_enc_pass { VPX_RC_ONE_PASS, /**< Single pass mode */ VPX_RC_FIRST_PASS, /**< First pass of multi-pass mode */ VPX_RC_LAST_PASS /**< Final pass of multi-pass mode */ - }; +}; - /*!\brief Rate control mode */ - enum vpx_rc_mode { +/*!\brief Rate control mode */ +enum vpx_rc_mode { VPX_VBR, /**< Variable Bit Rate (VBR) mode */ VPX_CBR, /**< Constant Bit Rate (CBR) mode */ VPX_CQ, /**< Constrained Quality (CQ) mode */ VPX_Q, /**< Constant Quality (Q) mode */ - }; - - - /*!\brief Keyframe placement mode. - * - * This enumeration determines whether keyframes are placed automatically by - * the encoder or whether this behavior is disabled. Older releases of this - * SDK were implemented such that VPX_KF_FIXED meant keyframes were disabled. - * This name is confusing for this behavior, so the new symbols to be used - * are VPX_KF_AUTO and VPX_KF_DISABLED. - */ - enum vpx_kf_mode { +}; + + +/*!\brief Keyframe placement mode. + * + * This enumeration determines whether keyframes are placed automatically by + * the encoder or whether this behavior is disabled. Older releases of this + * SDK were implemented such that VPX_KF_FIXED meant keyframes were disabled. + * This name is confusing for this behavior, so the new symbols to be used + * are VPX_KF_AUTO and VPX_KF_DISABLED. + */ +enum vpx_kf_mode { VPX_KF_FIXED, /**< deprecated, implies VPX_KF_DISABLED */ VPX_KF_AUTO, /**< Encoder determines optimal placement automatically */ VPX_KF_DISABLED = 0 /**< Encoder does not place keyframes. */ - }; +}; - /*!\brief Encoded Frame Flags - * - * This type indicates a bitfield to be passed to vpx_codec_encode(), defining - * per-frame boolean values. By convention, bits common to all codecs will be - * named VPX_EFLAG_*, and bits specific to an algorithm will be named - * /algo/_eflag_*. The lower order 16 bits are reserved for common use. - */ - typedef long vpx_enc_frame_flags_t; +/*!\brief Encoded Frame Flags + * + * This type indicates a bitfield to be passed to vpx_codec_encode(), defining + * per-frame boolean values. By convention, bits common to all codecs will be + * named VPX_EFLAG_*, and bits specific to an algorithm will be named + * /algo/_eflag_*. The lower order 16 bits are reserved for common use. + */ +typedef long vpx_enc_frame_flags_t; #define VPX_EFLAG_FORCE_KF (1<<0) /**< Force this frame to be a keyframe */ - /*!\brief Encoder configuration structure - * - * This structure contains the encoder settings that have common representations - * across all codecs. This doesn't imply that all codecs support all features, - * however. - */ - typedef struct vpx_codec_enc_cfg { +/*!\brief Encoder configuration structure + * + * This structure contains the encoder settings that have common representations + * across all codecs. This doesn't imply that all codecs support all features, + * however. + */ +typedef struct vpx_codec_enc_cfg { /* * generic settings (g) */ @@ -729,150 +729,150 @@ extern "C" { * ts_periodicity=8, then ts_layer_id = (0,1,0,1,0,1,0,1). */ unsigned int ts_layer_id[VPX_TS_MAX_PERIODICITY]; - } vpx_codec_enc_cfg_t; /**< alias for struct vpx_codec_enc_cfg */ - - /*!\brief vp9 svc extra configure parameters - * - * This defines max/min quantizers and scale factors for each layer - * - */ - typedef struct vpx_svc_parameters { +} vpx_codec_enc_cfg_t; /**< alias for struct vpx_codec_enc_cfg */ + +/*!\brief vp9 svc extra configure parameters + * + * This defines max/min quantizers and scale factors for each layer + * + */ +typedef struct vpx_svc_parameters { int max_quantizers[VPX_SS_MAX_LAYERS]; /**< Max Q for each layer */ int min_quantizers[VPX_SS_MAX_LAYERS]; /**< Min Q for each layer */ int scaling_factor_num[VPX_SS_MAX_LAYERS]; /**< Scaling factor-numerator*/ int scaling_factor_den[VPX_SS_MAX_LAYERS]; /**< Scaling factor-denominator*/ - } vpx_svc_extra_cfg_t; - - - /*!\brief Initialize an encoder instance - * - * Initializes a encoder context using the given interface. Applications - * should call the vpx_codec_enc_init convenience macro instead of this - * function directly, to ensure that the ABI version number parameter - * is properly initialized. - * - * If the library was configured with --disable-multithread, this call - * is not thread safe and should be guarded with a lock if being used - * in a multithreaded context. - * - * \param[in] ctx Pointer to this instance's context. - * \param[in] iface Pointer to the algorithm interface to use. - * \param[in] cfg Configuration to use, if known. May be NULL. - * \param[in] flags Bitfield of VPX_CODEC_USE_* flags - * \param[in] ver ABI version number. Must be set to - * VPX_ENCODER_ABI_VERSION - * \retval #VPX_CODEC_OK - * The decoder algorithm initialized. - * \retval #VPX_CODEC_MEM_ERROR - * Memory allocation failed. - */ - vpx_codec_err_t vpx_codec_enc_init_ver(vpx_codec_ctx_t *ctx, - vpx_codec_iface_t *iface, - const vpx_codec_enc_cfg_t *cfg, - vpx_codec_flags_t flags, - int ver); - - - /*!\brief Convenience macro for vpx_codec_enc_init_ver() - * - * Ensures the ABI version parameter is properly set. - */ +} vpx_svc_extra_cfg_t; + + +/*!\brief Initialize an encoder instance + * + * Initializes a encoder context using the given interface. Applications + * should call the vpx_codec_enc_init convenience macro instead of this + * function directly, to ensure that the ABI version number parameter + * is properly initialized. + * + * If the library was configured with --disable-multithread, this call + * is not thread safe and should be guarded with a lock if being used + * in a multithreaded context. + * + * \param[in] ctx Pointer to this instance's context. + * \param[in] iface Pointer to the algorithm interface to use. + * \param[in] cfg Configuration to use, if known. May be NULL. + * \param[in] flags Bitfield of VPX_CODEC_USE_* flags + * \param[in] ver ABI version number. Must be set to + * VPX_ENCODER_ABI_VERSION + * \retval #VPX_CODEC_OK + * The decoder algorithm initialized. + * \retval #VPX_CODEC_MEM_ERROR + * Memory allocation failed. + */ +vpx_codec_err_t vpx_codec_enc_init_ver(vpx_codec_ctx_t *ctx, + vpx_codec_iface_t *iface, + const vpx_codec_enc_cfg_t *cfg, + vpx_codec_flags_t flags, + int ver); + + +/*!\brief Convenience macro for vpx_codec_enc_init_ver() + * + * Ensures the ABI version parameter is properly set. + */ #define vpx_codec_enc_init(ctx, iface, cfg, flags) \ vpx_codec_enc_init_ver(ctx, iface, cfg, flags, VPX_ENCODER_ABI_VERSION) - /*!\brief Initialize multi-encoder instance - * - * Initializes multi-encoder context using the given interface. - * Applications should call the vpx_codec_enc_init_multi convenience macro - * instead of this function directly, to ensure that the ABI version number - * parameter is properly initialized. - * - * \param[in] ctx Pointer to this instance's context. - * \param[in] iface Pointer to the algorithm interface to use. - * \param[in] cfg Configuration to use, if known. May be NULL. - * \param[in] num_enc Total number of encoders. - * \param[in] flags Bitfield of VPX_CODEC_USE_* flags - * \param[in] dsf Pointer to down-sampling factors. - * \param[in] ver ABI version number. Must be set to - * VPX_ENCODER_ABI_VERSION - * \retval #VPX_CODEC_OK - * The decoder algorithm initialized. - * \retval #VPX_CODEC_MEM_ERROR - * Memory allocation failed. - */ - vpx_codec_err_t vpx_codec_enc_init_multi_ver(vpx_codec_ctx_t *ctx, - vpx_codec_iface_t *iface, - vpx_codec_enc_cfg_t *cfg, - int num_enc, - vpx_codec_flags_t flags, - vpx_rational_t *dsf, - int ver); - - - /*!\brief Convenience macro for vpx_codec_enc_init_multi_ver() - * - * Ensures the ABI version parameter is properly set. - */ +/*!\brief Initialize multi-encoder instance + * + * Initializes multi-encoder context using the given interface. + * Applications should call the vpx_codec_enc_init_multi convenience macro + * instead of this function directly, to ensure that the ABI version number + * parameter is properly initialized. + * + * \param[in] ctx Pointer to this instance's context. + * \param[in] iface Pointer to the algorithm interface to use. + * \param[in] cfg Configuration to use, if known. May be NULL. + * \param[in] num_enc Total number of encoders. + * \param[in] flags Bitfield of VPX_CODEC_USE_* flags + * \param[in] dsf Pointer to down-sampling factors. + * \param[in] ver ABI version number. Must be set to + * VPX_ENCODER_ABI_VERSION + * \retval #VPX_CODEC_OK + * The decoder algorithm initialized. + * \retval #VPX_CODEC_MEM_ERROR + * Memory allocation failed. + */ +vpx_codec_err_t vpx_codec_enc_init_multi_ver(vpx_codec_ctx_t *ctx, + vpx_codec_iface_t *iface, + vpx_codec_enc_cfg_t *cfg, + int num_enc, + vpx_codec_flags_t flags, + vpx_rational_t *dsf, + int ver); + + +/*!\brief Convenience macro for vpx_codec_enc_init_multi_ver() + * + * Ensures the ABI version parameter is properly set. + */ #define vpx_codec_enc_init_multi(ctx, iface, cfg, num_enc, flags, dsf) \ vpx_codec_enc_init_multi_ver(ctx, iface, cfg, num_enc, flags, dsf, \ VPX_ENCODER_ABI_VERSION) - /*!\brief Get a default configuration - * - * Initializes a encoder configuration structure with default values. Supports - * the notion of "usages" so that an algorithm may offer different default - * settings depending on the user's intended goal. This function \ref SHOULD - * be called by all applications to initialize the configuration structure - * before specializing the configuration with application specific values. - * - * \param[in] iface Pointer to the algorithm interface to use. - * \param[out] cfg Configuration buffer to populate - * \param[in] usage End usage. Set to 0 or use codec specific values. - * - * \retval #VPX_CODEC_OK - * The configuration was populated. - * \retval #VPX_CODEC_INCAPABLE - * Interface is not an encoder interface. - * \retval #VPX_CODEC_INVALID_PARAM - * A parameter was NULL, or the usage value was not recognized. - */ - vpx_codec_err_t vpx_codec_enc_config_default(vpx_codec_iface_t *iface, - vpx_codec_enc_cfg_t *cfg, - unsigned int usage); - - - /*!\brief Set or change configuration - * - * Reconfigures an encoder instance according to the given configuration. - * - * \param[in] ctx Pointer to this instance's context - * \param[in] cfg Configuration buffer to use - * - * \retval #VPX_CODEC_OK - * The configuration was populated. - * \retval #VPX_CODEC_INCAPABLE - * Interface is not an encoder interface. - * \retval #VPX_CODEC_INVALID_PARAM - * A parameter was NULL, or the usage value was not recognized. - */ - vpx_codec_err_t vpx_codec_enc_config_set(vpx_codec_ctx_t *ctx, - const vpx_codec_enc_cfg_t *cfg); - - - /*!\brief Get global stream headers - * - * Retrieves a stream level global header packet, if supported by the codec. - * - * \param[in] ctx Pointer to this instance's context - * - * \retval NULL - * Encoder does not support global header - * \retval Non-NULL - * Pointer to buffer containing global header packet - */ - vpx_fixed_buf_t *vpx_codec_get_global_headers(vpx_codec_ctx_t *ctx); +/*!\brief Get a default configuration + * + * Initializes a encoder configuration structure with default values. Supports + * the notion of "usages" so that an algorithm may offer different default + * settings depending on the user's intended goal. This function \ref SHOULD + * be called by all applications to initialize the configuration structure + * before specializing the configuration with application specific values. + * + * \param[in] iface Pointer to the algorithm interface to use. + * \param[out] cfg Configuration buffer to populate + * \param[in] usage End usage. Set to 0 or use codec specific values. + * + * \retval #VPX_CODEC_OK + * The configuration was populated. + * \retval #VPX_CODEC_INCAPABLE + * Interface is not an encoder interface. + * \retval #VPX_CODEC_INVALID_PARAM + * A parameter was NULL, or the usage value was not recognized. + */ +vpx_codec_err_t vpx_codec_enc_config_default(vpx_codec_iface_t *iface, + vpx_codec_enc_cfg_t *cfg, + unsigned int usage); + + +/*!\brief Set or change configuration + * + * Reconfigures an encoder instance according to the given configuration. + * + * \param[in] ctx Pointer to this instance's context + * \param[in] cfg Configuration buffer to use + * + * \retval #VPX_CODEC_OK + * The configuration was populated. + * \retval #VPX_CODEC_INCAPABLE + * Interface is not an encoder interface. + * \retval #VPX_CODEC_INVALID_PARAM + * A parameter was NULL, or the usage value was not recognized. + */ +vpx_codec_err_t vpx_codec_enc_config_set(vpx_codec_ctx_t *ctx, + const vpx_codec_enc_cfg_t *cfg); + + +/*!\brief Get global stream headers + * + * Retrieves a stream level global header packet, if supported by the codec. + * + * \param[in] ctx Pointer to this instance's context + * + * \retval NULL + * Encoder does not support global header + * \retval Non-NULL + * Pointer to buffer containing global header packet + */ +vpx_fixed_buf_t *vpx_codec_get_global_headers(vpx_codec_ctx_t *ctx); #define VPX_DL_REALTIME (1) /**< deadline parameter analogous to @@ -881,141 +881,141 @@ extern "C" { * VPx GOOD QUALITY mode. */ #define VPX_DL_BEST_QUALITY (0) /**< deadline parameter analogous to * VPx BEST QUALITY mode. */ - /*!\brief Encode a frame - * - * Encodes a video frame at the given "presentation time." The presentation - * time stamp (PTS) \ref MUST be strictly increasing. - * - * The encoder supports the notion of a soft real-time deadline. Given a - * non-zero value to the deadline parameter, the encoder will make a "best - * effort" guarantee to return before the given time slice expires. It is - * implicit that limiting the available time to encode will degrade the - * output quality. The encoder can be given an unlimited time to produce the - * best possible frame by specifying a deadline of '0'. This deadline - * supercedes the VPx notion of "best quality, good quality, realtime". - * Applications that wish to map these former settings to the new deadline - * based system can use the symbols #VPX_DL_REALTIME, #VPX_DL_GOOD_QUALITY, - * and #VPX_DL_BEST_QUALITY. - * - * When the last frame has been passed to the encoder, this function should - * continue to be called, with the img parameter set to NULL. This will - * signal the end-of-stream condition to the encoder and allow it to encode - * any held buffers. Encoding is complete when vpx_codec_encode() is called - * and vpx_codec_get_cx_data() returns no data. - * - * \param[in] ctx Pointer to this instance's context - * \param[in] img Image data to encode, NULL to flush. - * \param[in] pts Presentation time stamp, in timebase units. - * \param[in] duration Duration to show frame, in timebase units. - * \param[in] flags Flags to use for encoding this frame. - * \param[in] deadline Time to spend encoding, in microseconds. (0=infinite) - * - * \retval #VPX_CODEC_OK - * The configuration was populated. - * \retval #VPX_CODEC_INCAPABLE - * Interface is not an encoder interface. - * \retval #VPX_CODEC_INVALID_PARAM - * A parameter was NULL, the image format is unsupported, etc. - */ - vpx_codec_err_t vpx_codec_encode(vpx_codec_ctx_t *ctx, - const vpx_image_t *img, - vpx_codec_pts_t pts, - unsigned long duration, - vpx_enc_frame_flags_t flags, - unsigned long deadline); - - /*!\brief Set compressed data output buffer - * - * Sets the buffer that the codec should output the compressed data - * into. This call effectively sets the buffer pointer returned in the - * next VPX_CODEC_CX_FRAME_PKT packet. Subsequent packets will be - * appended into this buffer. The buffer is preserved across frames, - * so applications must periodically call this function after flushing - * the accumulated compressed data to disk or to the network to reset - * the pointer to the buffer's head. - * - * `pad_before` bytes will be skipped before writing the compressed - * data, and `pad_after` bytes will be appended to the packet. The size - * of the packet will be the sum of the size of the actual compressed - * data, pad_before, and pad_after. The padding bytes will be preserved - * (not overwritten). - * - * Note that calling this function does not guarantee that the returned - * compressed data will be placed into the specified buffer. In the - * event that the encoded data will not fit into the buffer provided, - * the returned packet \ref MAY point to an internal buffer, as it would - * if this call were never used. In this event, the output packet will - * NOT have any padding, and the application must free space and copy it - * to the proper place. This is of particular note in configurations - * that may output multiple packets for a single encoded frame (e.g., lagged - * encoding) or if the application does not reset the buffer periodically. - * - * Applications may restore the default behavior of the codec providing - * the compressed data buffer by calling this function with a NULL - * buffer. - * - * Applications \ref MUSTNOT call this function during iteration of - * vpx_codec_get_cx_data(). - * - * \param[in] ctx Pointer to this instance's context - * \param[in] buf Buffer to store compressed data into - * \param[in] pad_before Bytes to skip before writing compressed data - * \param[in] pad_after Bytes to skip after writing compressed data - * - * \retval #VPX_CODEC_OK - * The buffer was set successfully. - * \retval #VPX_CODEC_INVALID_PARAM - * A parameter was NULL, the image format is unsupported, etc. - */ - vpx_codec_err_t vpx_codec_set_cx_data_buf(vpx_codec_ctx_t *ctx, - const vpx_fixed_buf_t *buf, - unsigned int pad_before, - unsigned int pad_after); - - - /*!\brief Encoded data iterator - * - * Iterates over a list of data packets to be passed from the encoder to the - * application. The different kinds of packets available are enumerated in - * #vpx_codec_cx_pkt_kind. - * - * #VPX_CODEC_CX_FRAME_PKT packets should be passed to the application's - * muxer. Multiple compressed frames may be in the list. - * #VPX_CODEC_STATS_PKT packets should be appended to a global buffer. - * - * The application \ref MUST silently ignore any packet kinds that it does - * not recognize or support. - * - * The data buffers returned from this function are only guaranteed to be - * valid until the application makes another call to any vpx_codec_* function. - * - * \param[in] ctx Pointer to this instance's context - * \param[in,out] iter Iterator storage, initialized to NULL - * - * \return Returns a pointer to an output data packet (compressed frame data, - * two-pass statistics, etc.) or NULL to signal end-of-list. - * - */ - const vpx_codec_cx_pkt_t *vpx_codec_get_cx_data(vpx_codec_ctx_t *ctx, - vpx_codec_iter_t *iter); - - - /*!\brief Get Preview Frame - * - * Returns an image that can be used as a preview. Shows the image as it would - * exist at the decompressor. The application \ref MUST NOT write into this - * image buffer. - * - * \param[in] ctx Pointer to this instance's context - * - * \return Returns a pointer to a preview image, or NULL if no image is - * available. - * - */ - const vpx_image_t *vpx_codec_get_preview_frame(vpx_codec_ctx_t *ctx); - - - /*!@} - end defgroup encoder*/ +/*!\brief Encode a frame + * + * Encodes a video frame at the given "presentation time." The presentation + * time stamp (PTS) \ref MUST be strictly increasing. + * + * The encoder supports the notion of a soft real-time deadline. Given a + * non-zero value to the deadline parameter, the encoder will make a "best + * effort" guarantee to return before the given time slice expires. It is + * implicit that limiting the available time to encode will degrade the + * output quality. The encoder can be given an unlimited time to produce the + * best possible frame by specifying a deadline of '0'. This deadline + * supercedes the VPx notion of "best quality, good quality, realtime". + * Applications that wish to map these former settings to the new deadline + * based system can use the symbols #VPX_DL_REALTIME, #VPX_DL_GOOD_QUALITY, + * and #VPX_DL_BEST_QUALITY. + * + * When the last frame has been passed to the encoder, this function should + * continue to be called, with the img parameter set to NULL. This will + * signal the end-of-stream condition to the encoder and allow it to encode + * any held buffers. Encoding is complete when vpx_codec_encode() is called + * and vpx_codec_get_cx_data() returns no data. + * + * \param[in] ctx Pointer to this instance's context + * \param[in] img Image data to encode, NULL to flush. + * \param[in] pts Presentation time stamp, in timebase units. + * \param[in] duration Duration to show frame, in timebase units. + * \param[in] flags Flags to use for encoding this frame. + * \param[in] deadline Time to spend encoding, in microseconds. (0=infinite) + * + * \retval #VPX_CODEC_OK + * The configuration was populated. + * \retval #VPX_CODEC_INCAPABLE + * Interface is not an encoder interface. + * \retval #VPX_CODEC_INVALID_PARAM + * A parameter was NULL, the image format is unsupported, etc. + */ +vpx_codec_err_t vpx_codec_encode(vpx_codec_ctx_t *ctx, + const vpx_image_t *img, + vpx_codec_pts_t pts, + unsigned long duration, + vpx_enc_frame_flags_t flags, + unsigned long deadline); + +/*!\brief Set compressed data output buffer + * + * Sets the buffer that the codec should output the compressed data + * into. This call effectively sets the buffer pointer returned in the + * next VPX_CODEC_CX_FRAME_PKT packet. Subsequent packets will be + * appended into this buffer. The buffer is preserved across frames, + * so applications must periodically call this function after flushing + * the accumulated compressed data to disk or to the network to reset + * the pointer to the buffer's head. + * + * `pad_before` bytes will be skipped before writing the compressed + * data, and `pad_after` bytes will be appended to the packet. The size + * of the packet will be the sum of the size of the actual compressed + * data, pad_before, and pad_after. The padding bytes will be preserved + * (not overwritten). + * + * Note that calling this function does not guarantee that the returned + * compressed data will be placed into the specified buffer. In the + * event that the encoded data will not fit into the buffer provided, + * the returned packet \ref MAY point to an internal buffer, as it would + * if this call were never used. In this event, the output packet will + * NOT have any padding, and the application must free space and copy it + * to the proper place. This is of particular note in configurations + * that may output multiple packets for a single encoded frame (e.g., lagged + * encoding) or if the application does not reset the buffer periodically. + * + * Applications may restore the default behavior of the codec providing + * the compressed data buffer by calling this function with a NULL + * buffer. + * + * Applications \ref MUSTNOT call this function during iteration of + * vpx_codec_get_cx_data(). + * + * \param[in] ctx Pointer to this instance's context + * \param[in] buf Buffer to store compressed data into + * \param[in] pad_before Bytes to skip before writing compressed data + * \param[in] pad_after Bytes to skip after writing compressed data + * + * \retval #VPX_CODEC_OK + * The buffer was set successfully. + * \retval #VPX_CODEC_INVALID_PARAM + * A parameter was NULL, the image format is unsupported, etc. + */ +vpx_codec_err_t vpx_codec_set_cx_data_buf(vpx_codec_ctx_t *ctx, + const vpx_fixed_buf_t *buf, + unsigned int pad_before, + unsigned int pad_after); + + +/*!\brief Encoded data iterator + * + * Iterates over a list of data packets to be passed from the encoder to the + * application. The different kinds of packets available are enumerated in + * #vpx_codec_cx_pkt_kind. + * + * #VPX_CODEC_CX_FRAME_PKT packets should be passed to the application's + * muxer. Multiple compressed frames may be in the list. + * #VPX_CODEC_STATS_PKT packets should be appended to a global buffer. + * + * The application \ref MUST silently ignore any packet kinds that it does + * not recognize or support. + * + * The data buffers returned from this function are only guaranteed to be + * valid until the application makes another call to any vpx_codec_* function. + * + * \param[in] ctx Pointer to this instance's context + * \param[in,out] iter Iterator storage, initialized to NULL + * + * \return Returns a pointer to an output data packet (compressed frame data, + * two-pass statistics, etc.) or NULL to signal end-of-list. + * + */ +const vpx_codec_cx_pkt_t *vpx_codec_get_cx_data(vpx_codec_ctx_t *ctx, + vpx_codec_iter_t *iter); + + +/*!\brief Get Preview Frame + * + * Returns an image that can be used as a preview. Shows the image as it would + * exist at the decompressor. The application \ref MUST NOT write into this + * image buffer. + * + * \param[in] ctx Pointer to this instance's context + * + * \return Returns a pointer to a preview image, or NULL if no image is + * available. + * + */ +const vpx_image_t *vpx_codec_get_preview_frame(vpx_codec_ctx_t *ctx); + + +/*!@} - end defgroup encoder*/ #ifdef __cplusplus } #endif diff --git a/thirdparties/iphone/include/vpx/vpx_frame_buffer.h b/thirdparties/iphone/include/vpx/vpx_frame_buffer.h index 41038b1..83b499e 100755 --- a/thirdparties/iphone/include/vpx/vpx_frame_buffer.h +++ b/thirdparties/iphone/include/vpx/vpx_frame_buffer.h @@ -34,9 +34,9 @@ extern "C" { * This structure holds allocated frame buffers used by the decoder. */ typedef struct vpx_codec_frame_buffer { - uint8_t *data; /**< Pointer to the data buffer */ - size_t size; /**< Size of data in bytes */ - void *priv; /**< Frame's private data */ + uint8_t *data; /**< Pointer to the data buffer */ + size_t size; /**< Size of data in bytes */ + void *priv; /**< Frame's private data */ } vpx_codec_frame_buffer_t; /*!\brief get frame buffer callback prototype diff --git a/thirdparties/iphone/include/vpx/vpx_image.h b/thirdparties/iphone/include/vpx/vpx_image.h index c06d351..ac5de63 100755 --- a/thirdparties/iphone/include/vpx/vpx_image.h +++ b/thirdparties/iphone/include/vpx/vpx_image.h @@ -20,14 +20,14 @@ extern "C" { #endif - /*!\brief Current ABI version number - * - * \internal - * If this file is altered in any way that changes the ABI, this value - * must be bumped. Examples include, but are not limited to, changing - * types, removing or reassigning enums, adding/removing/rearranging - * fields to structures - */ +/*!\brief Current ABI version number + * + * \internal + * If this file is altered in any way that changes the ABI, this value + * must be bumped. Examples include, but are not limited to, changing + * types, removing or reassigning enums, adding/removing/rearranging + * fields to structures + */ #define VPX_IMAGE_ABI_VERSION (3) /**<\hideinitializer*/ @@ -36,8 +36,8 @@ extern "C" { #define VPX_IMG_FMT_HAS_ALPHA 0x400 /**< Image has an alpha channel. */ #define VPX_IMG_FMT_HIGHBITDEPTH 0x800 /**< Image uses 16bit framebuffer. */ - /*!\brief List of supported image formats */ - typedef enum vpx_img_fmt { +/*!\brief List of supported image formats */ +typedef enum vpx_img_fmt { VPX_IMG_FMT_NONE, VPX_IMG_FMT_RGB24, /**< 24 bit per pixel packed RGB */ VPX_IMG_FMT_RGB32, /**< 32 bit per pixel packed 0RGB */ @@ -64,10 +64,11 @@ extern "C" { VPX_IMG_FMT_I42216 = VPX_IMG_FMT_I422 | VPX_IMG_FMT_HIGHBITDEPTH, VPX_IMG_FMT_I44416 = VPX_IMG_FMT_I444 | VPX_IMG_FMT_HIGHBITDEPTH, VPX_IMG_FMT_I44016 = VPX_IMG_FMT_I440 | VPX_IMG_FMT_HIGHBITDEPTH - } vpx_img_fmt_t; /**< alias for enum vpx_img_fmt */ +} +vpx_img_fmt_t; /**< alias for enum vpx_img_fmt */ - /*!\brief List of supported color spaces */ - typedef enum vpx_color_space { +/*!\brief List of supported color spaces */ +typedef enum vpx_color_space { VPX_CS_UNKNOWN = 0, /**< Unknown */ VPX_CS_BT_601 = 1, /**< BT.601 */ VPX_CS_BT_709 = 2, /**< BT.709 */ @@ -76,10 +77,10 @@ extern "C" { VPX_CS_BT_2020 = 5, /**< BT.2020 */ VPX_CS_RESERVED = 6, /**< Reserved */ VPX_CS_SRGB = 7 /**< sRGB */ - } vpx_color_space_t; /**< alias for enum vpx_color_space */ +} vpx_color_space_t; /**< alias for enum vpx_color_space */ - /**\brief Image Descriptor */ - typedef struct vpx_image { +/**\brief Image Descriptor */ +typedef struct vpx_image { vpx_img_fmt_t fmt; /**< Image Format */ vpx_color_space_t cs; /**< Color Space */ @@ -119,103 +120,103 @@ extern "C" { int self_allocd; /**< private */ void *fb_priv; /**< Frame buffer data associated with the image. */ - } vpx_image_t; /**< alias for struct vpx_image */ +} vpx_image_t; /**< alias for struct vpx_image */ - /**\brief Representation of a rectangle on a surface */ - typedef struct vpx_image_rect { +/**\brief Representation of a rectangle on a surface */ +typedef struct vpx_image_rect { unsigned int x; /**< leftmost column */ unsigned int y; /**< topmost row */ unsigned int w; /**< width */ unsigned int h; /**< height */ - } vpx_image_rect_t; /**< alias for struct vpx_image_rect */ - - /*!\brief Open a descriptor, allocating storage for the underlying image - * - * Returns a descriptor for storing an image of the given format. The - * storage for the descriptor is allocated on the heap. - * - * \param[in] img Pointer to storage for descriptor. If this parameter - * is NULL, the storage for the descriptor will be - * allocated on the heap. - * \param[in] fmt Format for the image - * \param[in] d_w Width of the image - * \param[in] d_h Height of the image - * \param[in] align Alignment, in bytes, of the image buffer and - * each row in the image(stride). - * - * \return Returns a pointer to the initialized image descriptor. If the img - * parameter is non-null, the value of the img parameter will be - * returned. - */ - vpx_image_t *vpx_img_alloc(vpx_image_t *img, - vpx_img_fmt_t fmt, - unsigned int d_w, - unsigned int d_h, - unsigned int align); - - /*!\brief Open a descriptor, using existing storage for the underlying image - * - * Returns a descriptor for storing an image of the given format. The - * storage for descriptor has been allocated elsewhere, and a descriptor is - * desired to "wrap" that storage. - * - * \param[in] img Pointer to storage for descriptor. If this parameter - * is NULL, the storage for the descriptor will be - * allocated on the heap. - * \param[in] fmt Format for the image - * \param[in] d_w Width of the image - * \param[in] d_h Height of the image - * \param[in] align Alignment, in bytes, of each row in the image. - * \param[in] img_data Storage to use for the image - * - * \return Returns a pointer to the initialized image descriptor. If the img - * parameter is non-null, the value of the img parameter will be - * returned. - */ - vpx_image_t *vpx_img_wrap(vpx_image_t *img, - vpx_img_fmt_t fmt, - unsigned int d_w, - unsigned int d_h, - unsigned int align, - unsigned char *img_data); - - - /*!\brief Set the rectangle identifying the displayed portion of the image - * - * Updates the displayed rectangle (aka viewport) on the image surface to - * match the specified coordinates and size. - * - * \param[in] img Image descriptor - * \param[in] x leftmost column - * \param[in] y topmost row - * \param[in] w width - * \param[in] h height - * - * \return 0 if the requested rectangle is valid, nonzero otherwise. - */ - int vpx_img_set_rect(vpx_image_t *img, - unsigned int x, - unsigned int y, - unsigned int w, - unsigned int h); - - - /*!\brief Flip the image vertically (top for bottom) - * - * Adjusts the image descriptor's pointers and strides to make the image - * be referenced upside-down. - * - * \param[in] img Image descriptor - */ - void vpx_img_flip(vpx_image_t *img); - - /*!\brief Close an image descriptor - * - * Frees all allocated storage associated with an image descriptor. - * - * \param[in] img Image descriptor - */ - void vpx_img_free(vpx_image_t *img); +} vpx_image_rect_t; /**< alias for struct vpx_image_rect */ + +/*!\brief Open a descriptor, allocating storage for the underlying image + * + * Returns a descriptor for storing an image of the given format. The + * storage for the descriptor is allocated on the heap. + * + * \param[in] img Pointer to storage for descriptor. If this parameter + * is NULL, the storage for the descriptor will be + * allocated on the heap. + * \param[in] fmt Format for the image + * \param[in] d_w Width of the image + * \param[in] d_h Height of the image + * \param[in] align Alignment, in bytes, of the image buffer and + * each row in the image(stride). + * + * \return Returns a pointer to the initialized image descriptor. If the img + * parameter is non-null, the value of the img parameter will be + * returned. + */ +vpx_image_t *vpx_img_alloc(vpx_image_t *img, + vpx_img_fmt_t fmt, + unsigned int d_w, + unsigned int d_h, + unsigned int align); + +/*!\brief Open a descriptor, using existing storage for the underlying image + * + * Returns a descriptor for storing an image of the given format. The + * storage for descriptor has been allocated elsewhere, and a descriptor is + * desired to "wrap" that storage. + * + * \param[in] img Pointer to storage for descriptor. If this parameter + * is NULL, the storage for the descriptor will be + * allocated on the heap. + * \param[in] fmt Format for the image + * \param[in] d_w Width of the image + * \param[in] d_h Height of the image + * \param[in] align Alignment, in bytes, of each row in the image. + * \param[in] img_data Storage to use for the image + * + * \return Returns a pointer to the initialized image descriptor. If the img + * parameter is non-null, the value of the img parameter will be + * returned. + */ +vpx_image_t *vpx_img_wrap(vpx_image_t *img, + vpx_img_fmt_t fmt, + unsigned int d_w, + unsigned int d_h, + unsigned int align, + unsigned char *img_data); + + +/*!\brief Set the rectangle identifying the displayed portion of the image + * + * Updates the displayed rectangle (aka viewport) on the image surface to + * match the specified coordinates and size. + * + * \param[in] img Image descriptor + * \param[in] x leftmost column + * \param[in] y topmost row + * \param[in] w width + * \param[in] h height + * + * \return 0 if the requested rectangle is valid, nonzero otherwise. + */ +int vpx_img_set_rect(vpx_image_t *img, + unsigned int x, + unsigned int y, + unsigned int w, + unsigned int h); + + +/*!\brief Flip the image vertically (top for bottom) + * + * Adjusts the image descriptor's pointers and strides to make the image + * be referenced upside-down. + * + * \param[in] img Image descriptor + */ +void vpx_img_flip(vpx_image_t *img); + +/*!\brief Close an image descriptor + * + * Frees all allocated storage associated with an image descriptor. + * + * \param[in] img Image descriptor + */ +void vpx_img_free(vpx_image_t *img); #ifdef __cplusplus } // extern "C" |