"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "libavcodec/h264_cavlc.c" between
libav-12.1.tar.gz and libav-12.2.tar.gz

About: libav provides cross-platform tools ("avconv") and libraries to convert, manipulate and stream a wide range of multimedia (audio and video) formats and protocols.

h264_cavlc.c  (libav-12.1):h264_cavlc.c  (libav-12.2)
skipping to change at line 1096 skipping to change at line 1096
h->cur_pic.mb_type[mb_xy] = mb_type; h->cur_pic.mb_type[mb_xy] = mb_type;
if(cbp || IS_INTRA16x16(mb_type)){ if(cbp || IS_INTRA16x16(mb_type)){
int i4x4, i8x8, chroma_idx; int i4x4, i8x8, chroma_idx;
int dquant; int dquant;
int ret; int ret;
GetBitContext *gb = &sl->gb; GetBitContext *gb = &sl->gb;
const uint8_t *scan, *scan8x8; const uint8_t *scan, *scan8x8;
const int max_qp = 51 + 6 * (h->ps.sps->bit_depth_luma - 8); const int max_qp = 51 + 6 * (h->ps.sps->bit_depth_luma - 8);
if(IS_INTERLACED(mb_type)){
scan8x8 = sl->qscale ? h->field_scan8x8_cavlc : h->field_scan8x8_cav
lc_q0;
scan = sl->qscale ? h->field_scan : h->field_scan_q0;
}else{
scan8x8 = sl->qscale ? h->zigzag_scan8x8_cavlc : h->zigzag_scan8x8_c
avlc_q0;
scan = sl->qscale ? h->zigzag_scan : h->zigzag_scan_q0;
}
dquant= get_se_golomb(&sl->gb); dquant= get_se_golomb(&sl->gb);
sl->qscale += dquant; sl->qscale += dquant;
if (((unsigned)sl->qscale) > max_qp){ if (((unsigned)sl->qscale) > max_qp){
if (sl->qscale < 0) sl->qscale += max_qp + 1; if (sl->qscale < 0) sl->qscale += max_qp + 1;
else sl->qscale -= max_qp+1; else sl->qscale -= max_qp+1;
if (((unsigned)sl->qscale) > max_qp){ if (((unsigned)sl->qscale) > max_qp){
av_log(h->avctx, AV_LOG_ERROR, "dquant out of range (%d) at %d % d\n", dquant, sl->mb_x, sl->mb_y); av_log(h->avctx, AV_LOG_ERROR, "dquant out of range (%d) at %d % d\n", dquant, sl->mb_x, sl->mb_y);
return -1; return -1;
} }
} }
sl->chroma_qp[0] = get_chroma_qp(h->ps.pps, 0, sl->qscale); sl->chroma_qp[0] = get_chroma_qp(h->ps.pps, 0, sl->qscale);
sl->chroma_qp[1] = get_chroma_qp(h->ps.pps, 1, sl->qscale); sl->chroma_qp[1] = get_chroma_qp(h->ps.pps, 1, sl->qscale);
if(IS_INTERLACED(mb_type)){
scan8x8 = sl->qscale ? h->field_scan8x8_cavlc : h->field_scan8x8_cav
lc_q0;
scan = sl->qscale ? h->field_scan : h->field_scan_q0;
}else{
scan8x8 = sl->qscale ? h->zigzag_scan8x8_cavlc : h->zigzag_scan8x8_c
avlc_q0;
scan = sl->qscale ? h->zigzag_scan : h->zigzag_scan_q0;
}
if ((ret = decode_luma_residual(h, sl, gb, scan, scan8x8, pixel_shift, m b_type, cbp, 0)) < 0 ) { if ((ret = decode_luma_residual(h, sl, gb, scan, scan8x8, pixel_shift, m b_type, cbp, 0)) < 0 ) {
return -1; return -1;
} }
h->cbp_table[mb_xy] |= ret << 12; h->cbp_table[mb_xy] |= ret << 12;
if (CHROMA444(h)) { if (CHROMA444(h)) {
if (decode_luma_residual(h, sl, gb, scan, scan8x8, pixel_shift, mb_t ype, cbp, 1) < 0 ) { if (decode_luma_residual(h, sl, gb, scan, scan8x8, pixel_shift, mb_t ype, cbp, 1) < 0 ) {
return -1; return -1;
} }
if (decode_luma_residual(h, sl, gb, scan, scan8x8, pixel_shift, mb_t ype, cbp, 2) < 0 ) { if (decode_luma_residual(h, sl, gb, scan, scan8x8, pixel_shift, mb_t ype, cbp, 2) < 0 ) {
return -1; return -1;
 End of changes. 2 change blocks. 
10 lines changed or deleted 10 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)