# HG changeset patch # User michael # Date 1216731670 0 # Node ID 612a78c3b128b5db718264219394ffabf58bf5b2 # Parent def19f6f7ce9e48ca767f9ce66db68274d4f53a5 qscale has a range of 0..51 we thus do not need a 256 entry table and neither need to and it with 0xFF. diff -r def19f6f7ce9 -r 612a78c3b128 h264.c --- a/h264.c Tue Jul 22 12:31:48 2008 +0000 +++ b/h264.c Tue Jul 22 13:01:10 2008 +0000 @@ -1584,7 +1584,7 @@ * gets the chroma qp. */ static inline int get_chroma_qp(H264Context *h, int t, int qscale){ - return h->pps.chroma_qp_table[t][qscale & 0xff]; + return h->pps.chroma_qp_table[t][qscale]; } //FIXME need to check that this does not overflow signed 32 bit for low qp, I am not sure, it's very close @@ -7337,8 +7337,8 @@ build_qp_table(PPS *pps, int t, int index) { int i; - for(i = 0; i < 255; i++) - pps->chroma_qp_table[t][i & 0xff] = chroma_qp[av_clip(i + index, 0, 51)]; + for(i = 0; i < 52; i++) + pps->chroma_qp_table[t][i] = chroma_qp[av_clip(i + index, 0, 51)]; } static inline int decode_picture_parameter_set(H264Context *h, int bit_length){ diff -r def19f6f7ce9 -r 612a78c3b128 h264.h --- a/h264.h Tue Jul 22 12:31:48 2008 +0000 +++ b/h264.h Tue Jul 22 13:01:10 2008 +0000 @@ -138,7 +138,7 @@ int transform_8x8_mode; ///< transform_8x8_mode_flag uint8_t scaling_matrix4[6][16]; uint8_t scaling_matrix8[2][64]; - uint8_t chroma_qp_table[2][256]; ///< pre-scaled (with chroma_qp_index_offset) version of qp_table + uint8_t chroma_qp_table[2][64]; ///< pre-scaled (with chroma_qp_index_offset) version of qp_table int chroma_qp_diff; }PPS;