# HG changeset patch # User rik # Date 1067013845 0 # Node ID 9627feb8c6fb7c9dc3e190b8ad721c5a9dc23271 # Parent 837bca3ae69f4a11743a6c60506a9c43c1118aa3 ffmpeg sync patch by Alex (thank you), I changed qmin and qmax to be 1 and 31 in the caller diff -r 837bca3ae69f -r 9627feb8c6fb libvo/jpeg_enc.c --- a/libvo/jpeg_enc.c Fri Oct 24 11:34:48 2003 +0000 +++ b/libvo/jpeg_enc.c Fri Oct 24 16:44:05 2003 +0000 @@ -74,12 +74,12 @@ }; static void convert_matrix(MpegEncContext *s, int (*qmat)[64], - uint16_t (*qmat16)[64], uint16_t (*qmat16_bias)[64], - const uint16_t *quant_matrix, int bias) + uint16_t (*qmat16)[2][64], const uint16_t *quant_matrix, + int bias, int qmin, int qmax) { int qscale; - for(qscale=1; qscale<32; qscale++){ + for(qscale=qmin; qscaledsp.fdct == ff_jpeg_fdct_islow) { for (i = 0; i < 64; i++) { @@ -113,12 +113,11 @@ so (1<<19) / 16 >= (1<<19) / (qscale * quant_matrix[i]) >= (1<<19) / 7905 so 32768 >= (1<<19) / (qscale * quant_matrix[i]) >= 67 */ - qmat [qscale][i] = (1 << QMAT_SHIFT_MMX) / (qscale * quant_matrix[i]); - qmat16[qscale][i] = (1 << QMAT_SHIFT_MMX) / (qscale * quant_matrix[j]); + qmat [qscale][i] = (int)((uint64_t_C(1) << QMAT_SHIFT_MMX) / (qscale * quant_matrix[j])); + qmat16[qscale][0][i] = (1 << QMAT_SHIFT_MMX) / (qscale * quant_matrix[j]); - if(qmat16[qscale][i]==0 || qmat16[qscale][i]==128*256) qmat16[qscale][i]=128*256-1; - - qmat16_bias[qscale][i]= ROUNDED_DIV(bias<<(16-QUANT_BIAS_SHIFT), qmat16[qscale][i]); + if(qmat16[qscale][0][i]==0 || qmat16[qscale][0][i]==128*256) qmat16[qscale][0][i]=128*256-1; + qmat16[qscale][1][i]= ROUNDED_DIV(bias<<(16-QUANT_BIAS_SHIFT), qmat16[qscale][0][i]); } } } @@ -368,8 +367,7 @@ j->s->intra_matrix[i] = CLAMP_TO_8BIT( (ff_mpeg1_default_intra_matrix[i]*j->s->qscale) >> 3); convert_matrix(j->s, j->s->q_intra_matrix, j->s->q_intra_matrix16, - j->s->q_intra_matrix16_bias, - j->s->intra_matrix, j->s->intra_quant_bias); + j->s->intra_matrix, j->s->intra_quant_bias, 1, 31); return j; }