OSDN Git Service

add upsample+yccrgb+devdrv
[fpga-leon-mjpeg/leon-mjpeg.git] / snapgear-2.6-p42 / user / jpeg-6b / jidctint.c
index a72b320..f897d15 100644 (file)
@@ -1,3 +1,5 @@
+/* modified by Kenichi Kurimoto */
+
 /*
  * jidctint.c
  *
@@ -32,6 +34,7 @@
 
 #ifdef DCT_ISLOW_SUPPORTED
 
+#include "kmjpeg.h"
 
 /*
  * This module is specialized to the case DCTSIZE = 8.
@@ -161,6 +164,10 @@ jpeg_idct_islow (j_decompress_ptr cinfo, jpeg_component_info * compptr,
   int workspace[DCTSIZE2];     /* buffers data between passes */
   SHIFT_TEMPS
 
+    struct ioctl_cmdwrite writedata;
+
+
+
   /* Pass 1: process columns from input, store into work array. */
   /* Note results are scaled up by sqrt(8) compared to a true IDCT; */
   /* furthermore, we scale the results by 2**PASS1_BITS. */
@@ -300,6 +307,25 @@ jpeg_idct_islow (j_decompress_ptr cinfo, jpeg_component_info * compptr,
       outptr[6] = dcval;
       outptr[7] = dcval;
 
+      writedata.pixeldata = (unsigned int)outptr[0];
+      ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+      writedata.pixeldata = (unsigned int)outptr[1];
+      ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+      writedata.pixeldata = (unsigned int)outptr[2];
+      ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+      writedata.pixeldata = (unsigned int)outptr[3];
+      ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+      writedata.pixeldata = (unsigned int)outptr[4];
+      ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+      writedata.pixeldata = (unsigned int)outptr[5];
+      ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+      writedata.pixeldata = (unsigned int)outptr[6];
+      ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+      writedata.pixeldata = (unsigned int)outptr[7];
+      ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+
+
+
       wsptr += DCTSIZE;                /* advance pointer to next row */
       continue;
     }
@@ -382,6 +408,23 @@ jpeg_idct_islow (j_decompress_ptr cinfo, jpeg_component_info * compptr,
                                          CONST_BITS+PASS1_BITS+3)
                            & RANGE_MASK];
     
+    writedata.pixeldata = (unsigned int)outptr[0];
+    ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+    writedata.pixeldata = (unsigned int)outptr[1];
+    ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+    writedata.pixeldata = (unsigned int)outptr[2];
+    ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+    writedata.pixeldata = (unsigned int)outptr[3];
+    ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+    writedata.pixeldata = (unsigned int)outptr[4];
+    ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+    writedata.pixeldata = (unsigned int)outptr[5];
+    ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+    writedata.pixeldata = (unsigned int)outptr[6];
+    ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+    writedata.pixeldata = (unsigned int)outptr[7];
+    ioctl(cinfo->dev_fd, IOCTL_WRITE, &writedata);
+
     wsptr += DCTSIZE;          /* advance pointer to next row */
   }
 }