comparison rv34.c @ 8368:a7c85cdc11b5 libavcodec

Generate correct deblock pattern for RV30
author kostya
date Wed, 17 Dec 2008 19:39:56 +0000
parents 24a49d3fdc3b
children 45c3780b1a96
comparison
equal deleted inserted replaced
8367:84a066542cd4 8368:a7c85cdc11b5
1107 } 1107 }
1108 if(s->first_slice_line) 1108 if(s->first_slice_line)
1109 hmvmask &= ~0x000F; 1109 hmvmask &= ~0x000F;
1110 if(!s->mb_x) 1110 if(!s->mb_x)
1111 vmvmask &= ~0x1111; 1111 vmvmask &= ~0x1111;
1112 return hmvmask | vmvmask; //XXX: should be stored separately for RV3 1112 if(r->rv30){ //RV30 marks both subblocks on the edge for filtering
1113 vmvmask |= (vmvmask & 0x4444) >> 1;
1114 hmvmask |= (hmvmask & 0x0F00) >> 4;
1115 if(s->mb_x)
1116 r->deblock_coefs[s->mb_x - 1 + s->mb_y*s->mb_stride] |= (vmvmask & 0x1111) << 3;
1117 if(!s->first_slice_line)
1118 r->deblock_coefs[s->mb_x + (s->mb_y - 1)*s->mb_stride] |= (hmvmask & 0xF) << 12;
1119 }
1120 return hmvmask | vmvmask;
1113 } 1121 }
1114 1122
1115 static int rv34_decode_macroblock(RV34DecContext *r, int8_t *intra_types) 1123 static int rv34_decode_macroblock(RV34DecContext *r, int8_t *intra_types)
1116 { 1124 {
1117 MpegEncContext *s = &r->s; 1125 MpegEncContext *s = &r->s;