OSDN Git Service

altera works, xilinx works with trivial bugs
[fpga-leon-mjpeg/leon-mjpeg.git] / snapgear-2.6-p42 / user / jpeg-6b-host / make_in_huff.c
diff --git a/snapgear-2.6-p42/user/jpeg-6b-host/make_in_huff.c b/snapgear-2.6-p42/user/jpeg-6b-host/make_in_huff.c
new file mode 100644 (file)
index 0000000..1a39336
--- /dev/null
@@ -0,0 +1,75 @@
+#include <stdio.h>
+
+static int pos=0;
+
+int main()
+{
+  FILE *fp;
+  char data[1];
+  size_t size;
+  size_t i;
+  unsigned int skip;
+  unsigned int j;
+
+  fp = fopen("00087.jpg", "rb");
+  if(fp == NULL){
+    fprintf(stderr,"File Open error!\n");
+    return 1;
+  }
+
+  while(1){
+    fprintf(stderr,".");
+    if((size = fread(data, 1, 1, fp))==0){
+      fprintf(stderr,"Data read error(1)\n");
+      exit(1);
+    }
+    if((unsigned char)data[0] == 0xFF){
+      if((size = fread(data, 1,1,fp))==0){
+      fprintf(stderr,"Data read error(2)\n");
+       exit(1);
+      }
+      if((unsigned char)data[0] == 0xda){
+       break;
+      }
+    }
+  }
+  if((size = fread(data, 1, 1, fp))==0){
+    fprintf(stderr,"Data read error(3)\n");
+    exit(1);
+  }
+  skip = (unsigned int)data[0] << 8;
+  if((size = fread(data, 1, 1, fp))==0){
+    fprintf(stderr,"Data read error(4)\n");
+    exit(1);
+  }
+  skip |= (unsigned int)data[0];
+  fprintf(stderr,"skip %d bytes\n",skip);
+  for(j=0;j<skip-2;j++){
+    if((size = fread(data, 1, 1, fp))==0){
+      fprintf(stderr,"Data read error(5)\n");
+      exit(1);
+    }
+  }
+  while(1){
+    if((size = fread(data, 1, 1, fp))==0){
+      break;
+    }
+    printf("%02X",(unsigned char)data[0]);
+    //printf("%02x",(unsigned char)data[0]);
+    pos++;
+    if(pos%4==0){
+      //printf(", 0x");
+            printf("\n");
+    }
+  }
+  if(pos%4==1){
+    printf("000000\n");
+  }else if(pos%4==2){
+    printf("0000\n");
+  }else if(pos%4==3){
+    printf("00\n");
+  }
+  fclose(fp);
+  //  printf("Ending\n");
+  return 0;
+}