Originally committed as revision 10078 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -50,12 +50,6 @@ | |||||
| #define BLKSIZE 1024 | #define BLKSIZE 1024 | ||||
| #define CLAMP_TO_SHORT(value) \ | |||||
| if (value > 32767) \ | |||||
| value = 32767; \ | |||||
| else if (value < -32768) \ | |||||
| value = -32768; \ | |||||
| /* step_table[] and index_table[] are from the ADPCM reference source */ | /* step_table[] and index_table[] are from the ADPCM reference source */ | ||||
| /* This is the index table: */ | /* This is the index table: */ | ||||
| static const int index_table[16] = { | static const int index_table[16] = { | ||||
| @@ -215,7 +209,7 @@ static inline unsigned char adpcm_ima_compress_sample(ADPCMChannelStatus *c, sho | |||||
| int delta = sample - c->prev_sample; | int delta = sample - c->prev_sample; | ||||
| int nibble = FFMIN(7, abs(delta)*4/step_table[c->step_index]) + (delta<0)*8; | int nibble = FFMIN(7, abs(delta)*4/step_table[c->step_index]) + (delta<0)*8; | ||||
| c->prev_sample = c->prev_sample + ((step_table[c->step_index] * yamaha_difflookup[nibble]) / 8); | c->prev_sample = c->prev_sample + ((step_table[c->step_index] * yamaha_difflookup[nibble]) / 8); | ||||
| CLAMP_TO_SHORT(c->prev_sample); | |||||
| c->prev_sample = av_clip_int16(c->prev_sample); | |||||
| c->step_index = av_clip(c->step_index + index_table[nibble], 0, 88); | c->step_index = av_clip(c->step_index + index_table[nibble], 0, 88); | ||||
| return nibble; | return nibble; | ||||
| } | } | ||||
| @@ -234,7 +228,7 @@ static inline unsigned char adpcm_ms_compress_sample(ADPCMChannelStatus *c, shor | |||||
| nibble= av_clip(nibble, -8, 7)&0x0F; | nibble= av_clip(nibble, -8, 7)&0x0F; | ||||
| predictor += (signed)((nibble & 0x08)?(nibble - 0x10):(nibble)) * c->idelta; | predictor += (signed)((nibble & 0x08)?(nibble - 0x10):(nibble)) * c->idelta; | ||||
| CLAMP_TO_SHORT(predictor); | |||||
| predictor = av_clip_int16(predictor); | |||||
| c->sample2 = c->sample1; | c->sample2 = c->sample1; | ||||
| c->sample1 = predictor; | c->sample1 = predictor; | ||||
| @@ -259,7 +253,7 @@ static inline unsigned char adpcm_yamaha_compress_sample(ADPCMChannelStatus *c, | |||||
| nibble = FFMIN(7, abs(delta)*4/c->step) + (delta<0)*8; | nibble = FFMIN(7, abs(delta)*4/c->step) + (delta<0)*8; | ||||
| c->predictor = c->predictor + ((c->step * yamaha_difflookup[nibble]) / 8); | c->predictor = c->predictor + ((c->step * yamaha_difflookup[nibble]) / 8); | ||||
| CLAMP_TO_SHORT(c->predictor); | |||||
| c->predictor = av_clip_int16(c->predictor); | |||||
| c->step = (c->step * yamaha_indexscale[nibble]) >> 8; | c->step = (c->step * yamaha_indexscale[nibble]) >> 8; | ||||
| c->step = av_clip(c->step, 127, 24567); | c->step = av_clip(c->step, 127, 24567); | ||||
| @@ -339,7 +333,7 @@ static void adpcm_compress_trellis(AVCodecContext *avctx, const short *samples, | |||||
| #define STORE_NODE(NAME, STEP_INDEX)\ | #define STORE_NODE(NAME, STEP_INDEX)\ | ||||
| int d;\ | int d;\ | ||||
| uint32_t ssd;\ | uint32_t ssd;\ | ||||
| CLAMP_TO_SHORT(dec_sample);\ | |||||
| dec_sample = av_clip_int16(dec_sample);\ | |||||
| d = sample - dec_sample;\ | d = sample - dec_sample;\ | ||||
| ssd = nodes[j]->ssd + d*d;\ | ssd = nodes[j]->ssd + d*d;\ | ||||
| if(nodes_next[frontier-1] && ssd >= nodes_next[frontier-1]->ssd)\ | if(nodes_next[frontier-1] && ssd >= nodes_next[frontier-1]->ssd)\ | ||||
| @@ -676,7 +670,7 @@ static inline short adpcm_ima_expand_nibble(ADPCMChannelStatus *c, char nibble, | |||||
| if (sign) predictor -= diff; | if (sign) predictor -= diff; | ||||
| else predictor += diff; | else predictor += diff; | ||||
| CLAMP_TO_SHORT(predictor); | |||||
| predictor = av_clip_int16(predictor); | |||||
| c->predictor = predictor; | c->predictor = predictor; | ||||
| c->step_index = step_index; | c->step_index = step_index; | ||||
| @@ -689,7 +683,7 @@ static inline short adpcm_ms_expand_nibble(ADPCMChannelStatus *c, char nibble) | |||||
| predictor = (((c->sample1) * (c->coeff1)) + ((c->sample2) * (c->coeff2))) / 256; | predictor = (((c->sample1) * (c->coeff1)) + ((c->sample2) * (c->coeff2))) / 256; | ||||
| predictor += (signed)((nibble & 0x08)?(nibble - 0x10):(nibble)) * c->idelta; | predictor += (signed)((nibble & 0x08)?(nibble - 0x10):(nibble)) * c->idelta; | ||||
| CLAMP_TO_SHORT(predictor); | |||||
| predictor = av_clip_int16(predictor); | |||||
| c->sample2 = c->sample1; | c->sample2 = c->sample1; | ||||
| c->sample1 = predictor; | c->sample1 = predictor; | ||||
| @@ -725,7 +719,7 @@ static inline short adpcm_ct_expand_nibble(ADPCMChannelStatus *c, char nibble) | |||||
| if(c->step > 32767) | if(c->step > 32767) | ||||
| c->step = 32767; | c->step = 32767; | ||||
| CLAMP_TO_SHORT(predictor); | |||||
| predictor = av_clip_int16(predictor); | |||||
| c->predictor = predictor; | c->predictor = predictor; | ||||
| return (short)predictor; | return (short)predictor; | ||||
| } | } | ||||
| @@ -766,7 +760,7 @@ static inline short adpcm_yamaha_expand_nibble(ADPCMChannelStatus *c, unsigned c | |||||
| } | } | ||||
| c->predictor += (c->step * yamaha_difflookup[nibble]) / 8; | c->predictor += (c->step * yamaha_difflookup[nibble]) / 8; | ||||
| CLAMP_TO_SHORT(c->predictor); | |||||
| c->predictor = av_clip_int16(c->predictor); | |||||
| c->step = (c->step * yamaha_indexscale[nibble]) >> 8; | c->step = (c->step * yamaha_indexscale[nibble]) >> 8; | ||||
| c->step = av_clip(c->step, 127, 24567); | c->step = av_clip(c->step, 127, 24567); | ||||
| return c->predictor; | return c->predictor; | ||||
| @@ -795,7 +789,7 @@ static void xa_decode(short *out, const unsigned char *in, | |||||
| t = (signed char)(d<<4)>>4; | t = (signed char)(d<<4)>>4; | ||||
| s = ( t<<shift ) + ((s_1*f0 + s_2*f1+32)>>6); | s = ( t<<shift ) + ((s_1*f0 + s_2*f1+32)>>6); | ||||
| CLAMP_TO_SHORT(s); | |||||
| s = av_clip_int16(s); | |||||
| *out = s; | *out = s; | ||||
| out += inc; | out += inc; | ||||
| s_2 = s_1; | s_2 = s_1; | ||||
| @@ -821,7 +815,7 @@ static void xa_decode(short *out, const unsigned char *in, | |||||
| t = (signed char)d >> 4; | t = (signed char)d >> 4; | ||||
| s = ( t<<shift ) + ((s_1*f0 + s_2*f1+32)>>6); | s = ( t<<shift ) + ((s_1*f0 + s_2*f1+32)>>6); | ||||
| CLAMP_TO_SHORT(s); | |||||
| s = av_clip_int16(s); | |||||
| *out = s; | *out = s; | ||||
| out += inc; | out += inc; | ||||
| s_2 = s_1; | s_2 = s_1; | ||||
| @@ -915,7 +909,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, | |||||
| if(cs->predictor & 0x8000) | if(cs->predictor & 0x8000) | ||||
| cs->predictor -= 0x10000; | cs->predictor -= 0x10000; | ||||
| CLAMP_TO_SHORT(cs->predictor); | |||||
| cs->predictor = av_clip_int16(cs->predictor); | |||||
| cs->step_index = (*src++) & 0x7F; | cs->step_index = (*src++) & 0x7F; | ||||
| @@ -1187,8 +1181,8 @@ static int adpcm_decode_frame(AVCodecContext *avctx, | |||||
| next_right_sample = (next_right_sample + | next_right_sample = (next_right_sample + | ||||
| (current_right_sample * coeff1r) + | (current_right_sample * coeff1r) + | ||||
| (previous_right_sample * coeff2r) + 0x80) >> 8; | (previous_right_sample * coeff2r) + 0x80) >> 8; | ||||
| CLAMP_TO_SHORT(next_left_sample); | |||||
| CLAMP_TO_SHORT(next_right_sample); | |||||
| next_left_sample = av_clip_int16(next_left_sample); | |||||
| next_right_sample = av_clip_int16(next_right_sample); | |||||
| previous_left_sample = current_left_sample; | previous_left_sample = current_left_sample; | ||||
| current_left_sample = next_left_sample; | current_left_sample = next_left_sample; | ||||
| @@ -1318,7 +1312,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, | |||||
| c->status[i].step_index += table[delta & (~signmask)]; | c->status[i].step_index += table[delta & (~signmask)]; | ||||
| c->status[i].step_index = av_clip(c->status[i].step_index, 0, 88); | c->status[i].step_index = av_clip(c->status[i].step_index, 0, 88); | ||||
| c->status[i].predictor = av_clip(c->status[i].predictor, -32768, 32767); | |||||
| c->status[i].predictor = av_clip_int16(c->status[i].predictor); | |||||
| *samples++ = c->status[i].predictor; | *samples++ = c->status[i].predictor; | ||||
| if (samples >= samples_end) { | if (samples >= samples_end) { | ||||
| @@ -1392,7 +1386,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, | |||||
| sampledat = ((prev[ch][0]*factor1 | sampledat = ((prev[ch][0]*factor1 | ||||
| + prev[ch][1]*factor2) >> 11) + (sampledat>>exp); | + prev[ch][1]*factor2) >> 11) + (sampledat>>exp); | ||||
| CLAMP_TO_SHORT(sampledat); | |||||
| sampledat = av_clip_int16(sampledat); | |||||
| *samples = sampledat; | *samples = sampledat; | ||||
| prev[ch][1] = prev[ch][0]; | prev[ch][1] = prev[ch][0]; | ||||
| prev[ch][0] = *samples++; | prev[ch][0] = *samples++; | ||||
| @@ -46,8 +46,6 @@ typedef struct { | |||||
| #define SCALE1 0x7298 | #define SCALE1 0x7298 | ||||
| #define SCALE2 0x3350 | #define SCALE2 0x3350 | ||||
| #define CLIP(s) if (s>32767) s=32767; else if (s<-32768) s=-32768 | |||||
| /* 18 bytes <-> 32 samples */ | /* 18 bytes <-> 32 samples */ | ||||
| #ifdef CONFIG_ENCODERS | #ifdef CONFIG_ENCODERS | ||||
| @@ -110,7 +108,7 @@ static void adx_decode(short *out,const unsigned char *in,PREV *prev) | |||||
| // d>>=4; if (d&8) d-=16; | // d>>=4; if (d&8) d-=16; | ||||
| d = ((signed char)d >> 4); | d = ((signed char)d >> 4); | ||||
| s0 = (BASEVOL*d*scale + SCALE1*s1 - SCALE2*s2)>>14; | s0 = (BASEVOL*d*scale + SCALE1*s1 - SCALE2*s2)>>14; | ||||
| CLIP(s0); | |||||
| s0 = av_clip_int16(s0); | |||||
| *out++=s0; | *out++=s0; | ||||
| s2 = s1; | s2 = s1; | ||||
| s1 = s0; | s1 = s0; | ||||
| @@ -119,7 +117,7 @@ static void adx_decode(short *out,const unsigned char *in,PREV *prev) | |||||
| //d&=15; if (d&8) d-=16; | //d&=15; if (d&8) d-=16; | ||||
| d = ((signed char)(d<<4) >> 4); | d = ((signed char)(d<<4) >> 4); | ||||
| s0 = (BASEVOL*d*scale + SCALE1*s1 - SCALE2*s2)>>14; | s0 = (BASEVOL*d*scale + SCALE1*s1 - SCALE2*s2)>>14; | ||||
| CLIP(s0); | |||||
| s0 = av_clip_int16(s0); | |||||
| *out++=s0; | *out++=s0; | ||||
| s2 = s1; | s2 = s1; | ||||
| s1 = s0; | s1 = s0; | ||||
| @@ -895,13 +895,13 @@ static int atrac3_decode_frame(AVCodecContext *avctx, | |||||
| if (q->channels == 1) { | if (q->channels == 1) { | ||||
| /* mono */ | /* mono */ | ||||
| for (i = 0; i<1024; i++) | for (i = 0; i<1024; i++) | ||||
| samples[i] = av_clip(round(q->outSamples[i]), -32768, 32767); | |||||
| samples[i] = av_clip_int16(round(q->outSamples[i])); | |||||
| *data_size = 1024 * sizeof(int16_t); | *data_size = 1024 * sizeof(int16_t); | ||||
| } else { | } else { | ||||
| /* stereo */ | /* stereo */ | ||||
| for (i = 0; i < 1024; i++) { | for (i = 0; i < 1024; i++) { | ||||
| samples[i*2] = av_clip(round(q->outSamples[i]), -32768, 32767); | |||||
| samples[i*2+1] = av_clip(round(q->outSamples[1024+i]), -32768, 32767); | |||||
| samples[i*2] = av_clip_int16(round(q->outSamples[i])); | |||||
| samples[i*2+1] = av_clip_int16(round(q->outSamples[1024+i])); | |||||
| } | } | ||||
| *data_size = 2048 * sizeof(int16_t); | *data_size = 2048 * sizeof(int16_t); | ||||
| } | } | ||||
| @@ -906,7 +906,7 @@ saturate_output_float (COOKContext *q, int chan, int16_t *out) | |||||
| */ | */ | ||||
| for (j = 0; j < q->samples_per_channel; j++) { | for (j = 0; j < q->samples_per_channel; j++) { | ||||
| out[chan + q->nb_channels * j] = | out[chan + q->nb_channels * j] = | ||||
| av_clip(lrintf(output[j]), -32768, 32767); | |||||
| av_clip_int16(lrintf(output[j])); | |||||
| } | } | ||||
| } | } | ||||
| @@ -46,8 +46,6 @@ typedef struct DPCMContext { | |||||
| const int *sol_table;//for SOL_DPCM | const int *sol_table;//for SOL_DPCM | ||||
| } DPCMContext; | } DPCMContext; | ||||
| #define SATURATE_S16(x) if (x < -32768) x = -32768; \ | |||||
| else if (x > 32767) x = 32767; | |||||
| #define SE_16BIT(x) if (x & 0x8000) x -= 0x10000; | #define SE_16BIT(x) if (x & 0x8000) x -= 0x10000; | ||||
| static int interplay_delta_table[] = { | static int interplay_delta_table[] = { | ||||
| @@ -190,7 +188,7 @@ static int dpcm_decode_frame(AVCodecContext *avctx, | |||||
| /* decode the samples */ | /* decode the samples */ | ||||
| for (in = 8, out = 0; in < buf_size; in++, out++) { | for (in = 8, out = 0; in < buf_size; in++, out++) { | ||||
| predictor[channel_number] += s->roq_square_array[buf[in]]; | predictor[channel_number] += s->roq_square_array[buf[in]]; | ||||
| SATURATE_S16(predictor[channel_number]); | |||||
| predictor[channel_number] = av_clip_int16(predictor[channel_number]); | |||||
| output_samples[out] = predictor[channel_number]; | output_samples[out] = predictor[channel_number]; | ||||
| /* toggle channel */ | /* toggle channel */ | ||||
| @@ -213,7 +211,7 @@ static int dpcm_decode_frame(AVCodecContext *avctx, | |||||
| while (in < buf_size) { | while (in < buf_size) { | ||||
| predictor[channel_number] += interplay_delta_table[buf[in++]]; | predictor[channel_number] += interplay_delta_table[buf[in++]]; | ||||
| SATURATE_S16(predictor[channel_number]); | |||||
| predictor[channel_number] = av_clip_int16(predictor[channel_number]); | |||||
| output_samples[out++] = predictor[channel_number]; | output_samples[out++] = predictor[channel_number]; | ||||
| /* toggle channel */ | /* toggle channel */ | ||||
| @@ -248,7 +246,7 @@ static int dpcm_decode_frame(AVCodecContext *avctx, | |||||
| diff >>= shift[channel_number]; | diff >>= shift[channel_number]; | ||||
| predictor[channel_number] += diff; | predictor[channel_number] += diff; | ||||
| SATURATE_S16(predictor[channel_number]); | |||||
| predictor[channel_number] = av_clip_int16(predictor[channel_number]); | |||||
| output_samples[out++] = predictor[channel_number]; | output_samples[out++] = predictor[channel_number]; | ||||
| /* toggle channel */ | /* toggle channel */ | ||||
| @@ -277,7 +275,7 @@ static int dpcm_decode_frame(AVCodecContext *avctx, | |||||
| n = buf[in++]; | n = buf[in++]; | ||||
| if (n & 0x80) s->sample[channel_number] -= s->sol_table[n & 0x7F]; | if (n & 0x80) s->sample[channel_number] -= s->sol_table[n & 0x7F]; | ||||
| else s->sample[channel_number] += s->sol_table[n & 0x7F]; | else s->sample[channel_number] += s->sol_table[n & 0x7F]; | ||||
| SATURATE_S16(s->sample[channel_number]); | |||||
| s->sample[channel_number] = av_clip_int16(s->sample[channel_number]); | |||||
| output_samples[out++] = s->sample[channel_number]; | output_samples[out++] = s->sample[channel_number]; | ||||
| /* toggle channel */ | /* toggle channel */ | ||||
| channel_number ^= s->channels - 1; | channel_number ^= s->channels - 1; | ||||
| @@ -325,7 +325,7 @@ static int cinaudio_decode_frame(AVCodecContext *avctx, | |||||
| } | } | ||||
| while (buf_size > 0) { | while (buf_size > 0) { | ||||
| cin->delta += cinaudio_delta16_table[*src++]; | cin->delta += cinaudio_delta16_table[*src++]; | ||||
| cin->delta = av_clip(cin->delta, -32768, 32767); | |||||
| cin->delta = av_clip_int16(cin->delta); | |||||
| *samples++ = cin->delta; | *samples++ = cin->delta; | ||||
| --buf_size; | --buf_size; | ||||
| } | } | ||||
| @@ -123,11 +123,7 @@ static int a52_decode_init(AVCodecContext *avctx) | |||||
| /**** the following two functions comes from a52dec */ | /**** the following two functions comes from a52dec */ | ||||
| static inline int blah (int32_t i) | static inline int blah (int32_t i) | ||||
| { | { | ||||
| if (i > 0x43c07fff) | |||||
| return 32767; | |||||
| else if (i < 0x43bf8000) | |||||
| return -32768; | |||||
| return i - 0x43c00000; | |||||
| return av_clip_int16(i - 0x43c00000); | |||||
| } | } | ||||
| static inline void float_to_int (float * _f, int16_t * s16, int nchannels) | static inline void float_to_int (float * _f, int16_t * s16, int nchannels) | ||||
| @@ -307,8 +307,7 @@ static inline int conv(int samples, float **pcm, char *buf, int channels) { | |||||
| val = mono[j] * 32767.f; | val = mono[j] * 32767.f; | ||||
| if(val > 32767) val = 32767 ; | |||||
| if(val < -32768) val = -32768 ; | |||||
| val = av_clip_int16(val); | |||||
| *ptr = val ; | *ptr = val ; | ||||
| ptr += channels; | ptr += channels; | ||||
| @@ -822,10 +822,7 @@ void ff_mpa_synth_filter(MPA_INT *synth_buf_ptr, int *synth_buf_offset, | |||||
| #if FRAC_BITS <= 15 | #if FRAC_BITS <= 15 | ||||
| /* NOTE: can cause a loss in precision if very high amplitude | /* NOTE: can cause a loss in precision if very high amplitude | ||||
| sound */ | sound */ | ||||
| if (v > 32767) | |||||
| v = 32767; | |||||
| else if (v < -32768) | |||||
| v = -32768; | |||||
| v = av_clip_int16(v); | |||||
| #endif | #endif | ||||
| synth_buf[j] = v; | synth_buf[j] = v; | ||||
| } | } | ||||
| @@ -486,9 +486,7 @@ static int ra144_decode_frame(AVCodecContext * avctx, | |||||
| shptr=glob->output_buffer; | shptr=glob->output_buffer; | ||||
| while (shptr<glob->output_buffer+BLOCKSIZE) { | while (shptr<glob->output_buffer+BLOCKSIZE) { | ||||
| s=*(shptr++)<<2; | s=*(shptr++)<<2; | ||||
| *data=s; | |||||
| if (s>32767) *data=32767; | |||||
| if (s<-32767) *data=-32768; | |||||
| *data=av_clip_int16(s); | |||||
| data++; | data++; | ||||
| } | } | ||||
| b+=30; | b+=30; | ||||
| @@ -279,7 +279,7 @@ int av_resample(AVResampleContext *c, short *dst, short *src, int *consumed, int | |||||
| } | } | ||||
| #ifdef CONFIG_RESAMPLE_AUDIOPHILE_KIDDY_MODE | #ifdef CONFIG_RESAMPLE_AUDIOPHILE_KIDDY_MODE | ||||
| dst[dst_index] = av_clip(lrintf(val), -32768, 32767); | |||||
| dst[dst_index] = av_clip_int16(lrintf(val)); | |||||
| #else | #else | ||||
| val = (val + (1<<(FILTER_SHIFT-1)))>>FILTER_SHIFT; | val = (val + (1<<(FILTER_SHIFT-1)))>>FILTER_SHIFT; | ||||
| dst[dst_index] = (unsigned)(val + 32768) > 65535 ? (val>>31) ^ 32767 : val; | dst[dst_index] = (unsigned)(val + 32768) > 65535 ? (val>>31) ^ 32767 : val; | ||||
| @@ -926,14 +926,7 @@ static int sonic_decode_frame(AVCodecContext *avctx, | |||||
| // internal -> short | // internal -> short | ||||
| for (i = 0; i < s->frame_size; i++) | for (i = 0; i < s->frame_size; i++) | ||||
| { | |||||
| if (s->int_samples[i] > 32767) | |||||
| samples[i] = 32767; | |||||
| else if (s->int_samples[i] < -32768) | |||||
| samples[i] = -32768; | |||||
| else | |||||
| samples[i] = s->int_samples[i]; | |||||
| } | |||||
| samples[i] = av_clip_int16(s->int_samples[i]); | |||||
| align_get_bits(&gb); | align_get_bits(&gb); | ||||
| @@ -458,7 +458,7 @@ static void vmdaudio_decode_audio(VmdAudioContext *s, unsigned char *data, | |||||
| s->predictors[chan] -= vmdaudio_table[buf[i] & 0x7F]; | s->predictors[chan] -= vmdaudio_table[buf[i] & 0x7F]; | ||||
| else | else | ||||
| s->predictors[chan] += vmdaudio_table[buf[i]]; | s->predictors[chan] += vmdaudio_table[buf[i]]; | ||||
| s->predictors[chan] = av_clip(s->predictors[chan], -32768, 32767); | |||||
| s->predictors[chan] = av_clip_int16(s->predictors[chan]); | |||||
| out[i] = s->predictors[chan]; | out[i] = s->predictors[chan]; | ||||
| chan ^= stereo; | chan ^= stereo; | ||||
| } | } | ||||
| @@ -740,10 +740,7 @@ static int wma_decode_frame(WMACodecContext *s, int16_t *samples) | |||||
| for(i=0;i<n;i++) { | for(i=0;i<n;i++) { | ||||
| a = lrintf(*iptr++); | a = lrintf(*iptr++); | ||||
| if (a > 32767) | |||||
| a = 32767; | |||||
| else if (a < -32768) | |||||
| a = -32768; | |||||
| a = av_clip_int16(a); | |||||
| *ptr = a; | *ptr = a; | ||||
| ptr += incr; | ptr += incr; | ||||
| } | } | ||||