@@ -862,12 +862,12 @@ static const uint8_t kf_bmode_prob[10][10][9] = {
862862 {{134 ,183 ,89 ,137 ,98 ,101 ,106 ,165 ,148 },{72 ,187 ,100 ,130 ,157 ,111 ,32 ,75 ,80 },{66 ,102 ,167 ,99 ,74 ,62 ,40 ,234 ,128 },{41 ,53 ,9 ,178 ,241 ,141 ,26 ,8 ,107 },{104 ,79 ,12 ,27 ,217 ,255 ,87 ,17 ,7 },{74 ,43 ,26 ,146 ,73 ,166 ,49 ,23 ,157 },{65 ,38 ,105 ,160 ,51 ,52 ,31 ,115 ,128 },{87 ,68 ,71 ,44 ,114 ,51 ,15 ,186 ,23 },{47 ,41 ,14 ,110 ,182 ,183 ,21 ,17 ,194 },{66 ,45 ,25 ,102 ,197 ,189 ,23 ,18 ,22 }},
863863 {{88 ,88 ,147 ,150 ,42 ,46 ,45 ,196 ,205 },{43 ,97 ,183 ,117 ,85 ,38 ,35 ,179 ,61 },{39 ,53 ,200 ,87 ,26 ,21 ,43 ,232 ,171 },{56 ,34 ,51 ,104 ,114 ,102 ,29 ,93 ,77 },{107 ,54 ,32 ,26 ,51 ,1 ,81 ,43 ,31 },{39 ,28 ,85 ,171 ,58 ,165 ,90 ,98 ,64 },{34 ,22 ,116 ,206 ,23 ,34 ,43 ,166 ,73 },{68 ,25 ,106 ,22 ,64 ,171 ,36 ,225 ,114 },{34 ,19 ,21 ,102 ,132 ,188 ,16 ,76 ,124 },{62 ,18 ,78 ,95 ,85 ,57 ,50 ,48 ,51 }},
864864 {{193 ,101 ,35 ,159 ,215 ,111 ,89 ,46 ,111 },{60 ,148 ,31 ,172 ,219 ,228 ,21 ,18 ,111 },{112 ,113 ,77 ,85 ,179 ,255 ,38 ,120 ,114 },{40 ,42 ,1 ,196 ,245 ,209 ,10 ,25 ,109 },{100 ,80 ,8 ,43 ,154 ,1 ,51 ,26 ,71 },{88 ,43 ,29 ,140 ,166 ,213 ,37 ,43 ,154 },{61 ,63 ,30 ,155 ,67 ,45 ,68 ,1 ,209 },{142 ,78 ,78 ,16 ,255 ,128 ,34 ,197 ,171 },{41 ,40 ,5 ,102 ,211 ,183 ,4 ,1 ,221 },{51 ,50 ,17 ,168 ,209 ,192 ,23 ,25 ,82 }},
865- {{182 , 24 , 21 , 242 , 2 , 2 , 7 , 40 , 219 },{72 , 79 , 60 , 205 , 60 , 75 , 7 , 32 , 145 },{62 , 68 , 86 , 130 , 73 , 119 , 27 , 149 , 192 },{31 , 28 , 25 , 110 , 169 , 100 , 24 , 131 , 101 },{22 , 27 , 3 , 47 , 244 ,255 ,78 , 7 , 3 },{58 , 45 , 4 , 75 , 114 , 193 , 102 , 44 , 42 },{33 , 19 , 38 , 212 , 3 , 52 , 3 , 109 , 198 },{39 , 50 , 59 , 59 , 64 ,128 ,34 , 69 , 210 },{44 , 7 , 5 , 85 , 101 , 214 , 14 , 9 , 187 },{55 , 47 , 4 , 55 , 151 , 7 , 89 , 38 , 35 }},
865+ {{125 , 98 , 42 , 88 , 104 , 85 , 117 , 175 , 82 },{95 , 84 , 53 , 89 , 128 , 100 , 113 , 101 , 45 },{75 , 79 , 123 , 47 , 51 , 128 , 81 , 171 , 1 },{57 , 17 , 5 , 71 , 102 , 57 , 53 , 41 , 49 },{115 , 21 , 2 , 10 , 102 ,255 ,166 , 23 , 6 },{38 , 33 , 13 , 121 , 57 , 73 , 26 , 1 , 85 },{41 , 10 , 67 , 138 , 77 , 110 , 90 , 47 , 114 },{101 , 29 , 16 , 10 , 85 ,128 ,101 , 196 , 26 },{57 , 18 , 10 , 102 , 102 , 213 , 34 , 20 , 43 },{117 , 20 , 15 , 36 , 163 , 128 , 68 , 1 , 26 }},
866866 {{138 ,31 ,36 ,171 ,27 ,166 ,38 ,44 ,229 },{67 ,87 ,58 ,169 ,82 ,115 ,26 ,59 ,179 },{63 ,59 ,90 ,180 ,59 ,166 ,93 ,73 ,154 },{40 ,40 ,21 ,116 ,143 ,209 ,34 ,39 ,175 },{57 ,46 ,22 ,24 ,128 ,1 ,54 ,17 ,37 },{47 ,15 ,16 ,183 ,34 ,223 ,49 ,45 ,183 },{46 ,17 ,33 ,183 ,6 ,98 ,15 ,32 ,183 },{65 ,32 ,73 ,115 ,28 ,128 ,23 ,128 ,205 },{40 ,3 ,9 ,115 ,51 ,192 ,18 ,6 ,223 },{87 ,37 ,9 ,115 ,59 ,77 ,64 ,21 ,47 }},
867- {{104 ,55 ,44 ,218 ,9 ,54 ,53 ,130 ,226 },{64 ,90 ,70 ,205 ,40 ,41 ,23 ,26 ,57 },{54 ,57 ,112 ,184 ,5 ,41 ,38 ,166 ,213 },{30 ,34 ,26 ,133 ,152 ,116 ,10 ,32 ,134 },{42 , 158 , 42 , 48 , 22 , 234 , 13 , 1 , 1 },{ 75 ,32 ,12 ,51 ,192 ,255 ,160 ,43 ,51 },{23 , 49 , 45 , 156 , 8 , 111 , 16 , 71 , 82 },{65 ,70 , 60 , 146 , 72 , 31 ,16 , 1 , 64 },{57 , 18 , 10 , 102 , 102 , 213 , 34 , 20 , 43 },{47 , 22 , 24 , 138 , 187 , 187 , 49 , 44 , 165 }},
868- {{164 , 50 , 31 , 137 , 154 , 133 , 25 , 35 , 218 },{67 , 68 ,71 ,186 , 114 , 84 ,28 ,30 , 163 },{90 , 67 , 64 , 90 , 153 , 132 , 25 , 119 , 188 },{36 , 44 , 18 , 145 , 190 , 119 , 14 , 26 , 97 },{75 ,55 , 11 , 14 , 8 , 30 , 22 , 51 , 130 },{63 ,43 ,20 , 116 ,100 ,152 , 48 , 93 , 127 },{58 , 24 , 47 , 157 , 116 , 25 , 41 , 99 , 163 },{86 ,55 , 80 , 64 ,32 , 60 , 9 , 158 , 77 },{37 , 20 , 14 , 111 , 138 , 163 , 11 , 11 , 214 },{63 , 51 , 14 , 79 , 118 , 34 , 64 , 42 , 75 }},
869- {{141 , 28 , 36 , 162 , 27 , 128 , 43 , 116 , 227 },{76 , 82 , 63 , 185 , 121 , 102 , 40 , 52 , 143 },{63 , 58 , 96 , 152 , 115 , 128 , 58 , 102 , 152 },{44 , 38 , 34 , 121 , 181 , 149 , 12 , 48 , 116 },{54 , 45 , 15 , 27 , 188 , 213 , 53 , 22 , 16 },{79 , 28 , 16 ,128 , 167 , 239 , 41 , 38 , 109 },{42 , 22 , 47 , 187 , 41 , 89 , 16 , 42 , 132 },{89 , 41 , 66 , 20 , 74 , 79 , 8 , 128 , 147 },{53 , 18 ,15 , 93 , 181 , 196 , 21 , 20 , 153 },{72 , 47 , 25 , 107 , 160 , 81 , 53 , 27 , 53 }},
870- {{124 , 68 , 51 , 98 , 125 , 189 , 82 , 82 , 200 },{76 , 100 , 69 , 192 , 134 , 147 , 45 , 75 , 83 },{57 , 59 , 107 , 115 , 109 , 131 , 43 , 139 , 143 },{38 , 43 , 27 , 131 , 152 , 136 , 32 , 34 , 107 },{60 , 53 , 16 , 24 , 158 , 220 , 44 , 24 , 44 },{80 , 45 ,17 ,134 , 81 , 175 , 99 , 50 , 100 },{48 , 25 , 51 , 199 , 33 , 104 , 33 , 84 , 108 },{82 , 42 , 51 , 57 , 73 , 70 , 25 , 157 , 113 },{51 , 24 , 14 , 115 , 133 , 209 , 18 , 16 , 209 },{66 , 47 , 20 , 122 , 148 , 176 , 39 , 30 , 57 }}
867+ {{104 ,55 ,44 ,218 ,9 ,54 ,53 ,130 ,226 },{64 ,90 ,70 ,205 ,40 ,41 ,23 ,26 ,57 },{54 ,57 ,112 ,184 ,5 ,41 ,38 ,166 ,213 },{30 ,34 ,26 ,133 ,152 ,116 ,10 ,32 ,134 },{75 ,32 ,12 ,51 ,192 ,255 ,160 ,43 ,51 },{39 , 19 , 53 , 221 , 26 , 114 , 32 , 73 , 255 },{31 , 9 , 65 ,234 , 2 , 15 , 1 , 118 , 73 },{ 88 , 31 ,35 , 67 , 102 , 85 , 55 , 186 , 85 },{56 , 21 , 23 , 111 , 59 , 205 , 45 , 37 , 192 },{55 , 38 , 70 , 124 , 73 , 102 , 1 , 34 , 98 }},
868+ {{102 , 61 , 71 , 37 , 34 , 53 , 31 , 243 , 192 },{69 , 60 ,71 ,38 , 73 , 119 ,28 ,222 , 37 },{68 , 45 , 128 , 34 , 1 , 47 , 11 , 245 , 171 },{62 , 17 , 19 , 70 , 146 , 85 , 55 , 62 , 70 },{75 ,15 , 9 , 9 , 64 , 255 , 184 , 119 , 16 },{37 ,43 ,37 , 154 ,100 ,163 , 85 , 160 , 1 },{63 , 9 , 92 , 136 , 28 , 64 , 32 , 201 , 85 },{86 ,6 , 28 , 5 , 64 ,255 , 25 , 248 , 1 },{56 , 8 , 17 , 132 , 137 , 255 , 55 , 116 , 128 },{58 , 15 , 20 , 82 , 135 , 57 , 26 , 121 , 40 }},
869+ {{164 , 50 , 31 , 137 , 154 , 133 , 25 , 35 , 218 },{51 , 103 , 44 , 131 , 131 , 123 , 31 , 6 , 158 },{86 , 40 , 64 , 135 , 148 , 224 , 45 , 183 , 128 },{22 , 26 , 17 , 131 , 240 , 154 , 14 , 1 , 209 },{83 , 12 , 13 , 54 , 192 , 255 , 68 , 47 , 28 },{45 , 16 ,21 , 91 , 64 , 222 , 7 , 1 , 197 },{56 , 21 , 39 , 155 , 60 , 138 , 23 , 102 , 213 },{85 , 26 , 85 , 85 , 128 , 128 , 32 , 146 , 171 },{18 ,11 , 7 , 63 , 144 , 171 , 4 , 4 , 246 },{35 , 27 , 10 , 146 , 174 , 171 , 12 , 26 , 128 }},
870+ {{190 , 80 , 35 , 99 , 180 , 80 , 126 , 54 , 45 },{85 , 126 , 47 , 87 , 176 , 51 , 41 , 20 , 32 },{101 , 75 , 128 , 139 , 118 , 146 , 116 , 128 , 85 },{56 , 41 , 15 , 176 , 236 , 85 , 37 , 9 , 62 },{146 , 36 , 19 , 30 , 171 , 255 , 97 , 27 , 20 },{71 , 30 ,17 ,119 , 118 , 255 , 17 , 18 , 138 },{101 , 38 , 60 , 138 , 55 , 70 , 43 , 26 , 142 },{138 , 45 , 61 , 62 , 219 , 1 , 81 , 188 , 64 },{32 , 41 , 20 , 117 , 151 , 142 , 20 , 21 , 163 },{112 , 19 , 12 , 61 , 195 , 128 , 48 , 4 , 24 }}
871871};
872872
873873/* Decode a B_PRED sub-block mode from the key-frame tree (RFC 6386 §12.1).
@@ -889,13 +889,13 @@ static int vp8_read_bmode(vp8b *br, int above, int left)
889889 if (!vp8b_get (br , p [1 ])) return 1 ; /* B_TM_PRED */
890890 if (!vp8b_get (br , p [2 ])) return 2 ; /* B_VE_PRED */
891891 if (!vp8b_get (br , p [3 ])) {
892- /* Left subtree: HE, RD, VR */
892+ /* Left subtree: HE, LD, RD */
893893 if (!vp8b_get (br , p [4 ])) return 3 ; /* B_HE_PRED */
894- if (!vp8b_get (br , p [5 ])) return 6 ; /* B_RD_PRED */
895- return 4 ; /* B_VR_PRED */
894+ if (!vp8b_get (br , p [5 ])) return 5 ; /* B_LD_PRED */
895+ return 6 ; /* B_RD_PRED */
896896 } else {
897- /* Right subtree: LD , VL, HD, HU */
898- if (!vp8b_get (br , p [6 ])) return 5 ; /* B_LD_PRED */
897+ /* Right subtree: VR , VL, HD, HU */
898+ if (!vp8b_get (br , p [6 ])) return 4 ; /* B_VR_PRED */
899899 if (!vp8b_get (br , p [7 ])) return 7 ; /* B_VL_PRED */
900900 if (!vp8b_get (br , p [8 ])) return 8 ; /* B_HD_PRED */
901901 return 9 ; /* B_HU_PRED */
@@ -1060,7 +1060,7 @@ static uint32_t *vp8_decode(const uint8_t *data, size_t len,
10601060 mbw = (w + 15 ) >> 4 ; mbh = (h + 15 ) >> 4 ;
10611061 p0 = data + 10 ;
10621062 if ((size_t )(p0 - data ) + p0s > len ) return NULL ;
1063- vp8b_init (& br , p0 , ( size_t )( data + len - p0 )); /* Use full buffer like libvpx */
1063+ vp8b_init (& br , p0 , p0s );
10641064
10651065 vp8b_bit (& br ); vp8b_bit (& br ); /* color_space, clamping */
10661066
0 commit comments