Mercurial > libavcodec.hg
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; |