+    int avail[6*8] = {0};
+    DCTELEM *ptr  = s->block[0];
+    int i, j, itype, has_ac;
+
+    // Set neighbour information.
+    if(r->avail_cache[1])
+        avail[0] = 1;
+    if(r->avail_cache[2])
+        avail[1] = avail[2] = 1;
+    if(r->avail_cache[3])
+        avail[3] = avail[4] = 1;
+    if(r->avail_cache[4])
+        avail[5] = 1;
+    if(r->avail_cache[5])
+        avail[8] = avail[16] = 1;
+    if(r->avail_cache[9])
+        avail[24] = avail[32] = 1;

You set all these values, but avail[] is never used.

+            if(cbp & 1){
+                dsp->clear_block(ptr);

Not part of this patch, but is it possible to do the same optimization
here that I did in VP8: have idct clear the block, thus avoiding the
need for a separate clear_block call?

+        for(i = 0; i < 4; i++, cbp >>= 1){
+            uint8_t *pdst;
+            if(!(cbp & 1)) continue;

Here's a really evil way of doing this that I used in VP8.

int tmpcbp = cbp&0xf;
for(; tmpcbp ; tmpcbp >>= 1){

Jason
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to