Mercurial > libavcodec.hg
comparison roqvideodec.c @ 5104:b8e8aa53f613 libavcodec
Rename cb field
patch by Eric Lasota: [riot at icculus org]
original thread: [FFmpeg-devel] [PATCH] RoQ decoder 4:4:4 update
date: 06/05/2007 09:22 PM
author | benoit |
---|---|
date | Wed, 06 Jun 2007 10:40:05 +0000 |
parents | 133329117637 |
children | c2a475157299 |
comparison
equal
deleted
inserted
replaced
5103:1deb3e53da27 | 5104:b8e8aa53f613 |
---|---|
58 if((nv1 = chunk_arg >> 8) == 0) | 58 if((nv1 = chunk_arg >> 8) == 0) |
59 nv1 = 256; | 59 nv1 = 256; |
60 if((nv2 = chunk_arg & 0xff) == 0 && nv1 * 6 < chunk_size) | 60 if((nv2 = chunk_arg & 0xff) == 0 && nv1 * 6 < chunk_size) |
61 nv2 = 256; | 61 nv2 = 256; |
62 for(i = 0; i < nv1; i++) { | 62 for(i = 0; i < nv1; i++) { |
63 ri->cells[i].y[0] = *buf++; | 63 ri->cb2x2[i].y[0] = *buf++; |
64 ri->cells[i].y[1] = *buf++; | 64 ri->cb2x2[i].y[1] = *buf++; |
65 ri->cells[i].y[2] = *buf++; | 65 ri->cb2x2[i].y[2] = *buf++; |
66 ri->cells[i].y[3] = *buf++; | 66 ri->cb2x2[i].y[3] = *buf++; |
67 ri->cells[i].u = *buf++; | 67 ri->cb2x2[i].u = *buf++; |
68 ri->cells[i].v = *buf++; | 68 ri->cb2x2[i].v = *buf++; |
69 } | 69 } |
70 for(i = 0; i < nv2; i++) | 70 for(i = 0; i < nv2; i++) |
71 for(j = 0; j < 4; j++) | 71 for(j = 0; j < 4; j++) |
72 ri->qcells[i].idx[j] = *buf++; | 72 ri->cb4x4[i].idx[j] = *buf++; |
73 } | 73 } |
74 } | 74 } |
75 | 75 |
76 bpos = xpos = ypos = 0; | 76 bpos = xpos = ypos = 0; |
77 while(bpos < chunk_size) { | 77 while(bpos < chunk_size) { |
92 mx = 8 - (buf[bpos] >> 4) - ((signed char) (chunk_arg >> 8)); | 92 mx = 8 - (buf[bpos] >> 4) - ((signed char) (chunk_arg >> 8)); |
93 my = 8 - (buf[bpos++] & 0xf) - ((signed char) chunk_arg); | 93 my = 8 - (buf[bpos++] & 0xf) - ((signed char) chunk_arg); |
94 ff_apply_motion_8x8(ri, xp, yp, mx, my); | 94 ff_apply_motion_8x8(ri, xp, yp, mx, my); |
95 break; | 95 break; |
96 case RoQ_ID_SLD: | 96 case RoQ_ID_SLD: |
97 qcell = ri->qcells + buf[bpos++]; | 97 qcell = ri->cb4x4 + buf[bpos++]; |
98 ff_apply_vector_4x4(ri, xp, yp, ri->cells + qcell->idx[0]); | 98 ff_apply_vector_4x4(ri, xp, yp, ri->cb2x2 + qcell->idx[0]); |
99 ff_apply_vector_4x4(ri, xp+4, yp, ri->cells + qcell->idx[1]); | 99 ff_apply_vector_4x4(ri, xp+4, yp, ri->cb2x2 + qcell->idx[1]); |
100 ff_apply_vector_4x4(ri, xp, yp+4, ri->cells + qcell->idx[2]); | 100 ff_apply_vector_4x4(ri, xp, yp+4, ri->cb2x2 + qcell->idx[2]); |
101 ff_apply_vector_4x4(ri, xp+4, yp+4, ri->cells + qcell->idx[3]); | 101 ff_apply_vector_4x4(ri, xp+4, yp+4, ri->cb2x2 + qcell->idx[3]); |
102 break; | 102 break; |
103 case RoQ_ID_CCC: | 103 case RoQ_ID_CCC: |
104 for (k = 0; k < 4; k++) { | 104 for (k = 0; k < 4; k++) { |
105 x = xp; y = yp; | 105 x = xp; y = yp; |
106 if(k & 0x01) x += 4; | 106 if(k & 0x01) x += 4; |
121 mx = 8 - (buf[bpos] >> 4) - ((signed char) (chunk_arg >> 8)); | 121 mx = 8 - (buf[bpos] >> 4) - ((signed char) (chunk_arg >> 8)); |
122 my = 8 - (buf[bpos++] & 0xf) - ((signed char) chunk_arg); | 122 my = 8 - (buf[bpos++] & 0xf) - ((signed char) chunk_arg); |
123 ff_apply_motion_4x4(ri, x, y, mx, my); | 123 ff_apply_motion_4x4(ri, x, y, mx, my); |
124 break; | 124 break; |
125 case RoQ_ID_SLD: | 125 case RoQ_ID_SLD: |
126 qcell = ri->qcells + buf[bpos++]; | 126 qcell = ri->cb4x4 + buf[bpos++]; |
127 ff_apply_vector_2x2(ri, x, y, ri->cells + qcell->idx[0]); | 127 ff_apply_vector_2x2(ri, x, y, ri->cb2x2 + qcell->idx[0]); |
128 ff_apply_vector_2x2(ri, x+2, y, ri->cells + qcell->idx[1]); | 128 ff_apply_vector_2x2(ri, x+2, y, ri->cb2x2 + qcell->idx[1]); |
129 ff_apply_vector_2x2(ri, x, y+2, ri->cells + qcell->idx[2]); | 129 ff_apply_vector_2x2(ri, x, y+2, ri->cb2x2 + qcell->idx[2]); |
130 ff_apply_vector_2x2(ri, x+2, y+2, ri->cells + qcell->idx[3]); | 130 ff_apply_vector_2x2(ri, x+2, y+2, ri->cb2x2 + qcell->idx[3]); |
131 break; | 131 break; |
132 case RoQ_ID_CCC: | 132 case RoQ_ID_CCC: |
133 ff_apply_vector_2x2(ri, x, y, ri->cells + buf[bpos]); | 133 ff_apply_vector_2x2(ri, x, y, ri->cb2x2 + buf[bpos]); |
134 ff_apply_vector_2x2(ri, x+2, y, ri->cells + buf[bpos+1]); | 134 ff_apply_vector_2x2(ri, x+2, y, ri->cb2x2 + buf[bpos+1]); |
135 ff_apply_vector_2x2(ri, x, y+2, ri->cells + buf[bpos+2]); | 135 ff_apply_vector_2x2(ri, x, y+2, ri->cb2x2 + buf[bpos+2]); |
136 ff_apply_vector_2x2(ri, x+2, y+2, ri->cells + buf[bpos+3]); | 136 ff_apply_vector_2x2(ri, x+2, y+2, ri->cb2x2 + buf[bpos+3]); |
137 bpos += 4; | 137 bpos += 4; |
138 break; | 138 break; |
139 } | 139 } |
140 } | 140 } |
141 break; | 141 break; |