Web lists-archives.com

[Spca50x-devs] [PATCH] YVYU decoding for VC0323




Hi,

I've got a no-brand camera with a Vimicro 0323 (ID 0ac8:0323), and
gspcav1-20071224 fails to decode its image properly. I've hacked the
driver to display the image correctly by changing the location of
width/height information and the decoding method, but I'm not sure how
to make it coexist with the existing support, since IDs are the same
(perhaps adding a parameter to the module?). Also in this particular
model the sensor seems to be mounted upside-down, so I'll have to add
code to rotate the image somewhere. I don't know if there are other
upside-down cameras around, any advice for the best location to add
such code?

Best regards,
Claudio
diff -rud gspcav1-20071224-orig/decoder/gspcadecoder.c gspcav1-20071224/decoder/gspcadecoder.c
--- gspcav1-20071224-orig/decoder/gspcadecoder.c	2007-12-24 11:35:27.000000000 -0200
+++ gspcav1-20071224/decoder/gspcadecoder.c	2008-02-01 11:47:57.000000000 -0200
@@ -2638,9 +2638,9 @@
 	break;
     case JPGV: // Vimicro323
     PDEBUG(3, "Vc323 0x%2X 0x%2X, 0x%2X,0x%2X", myframe->data[0] ,myframe->data[1],myframe->data[2] ,myframe->data[3]);
-	width = (myframe->data[9] << 8) | myframe->data[8];
-	height = (myframe->data[11] << 8) | myframe->data[10];
-	
+	width = ((myframe->data[13] << 8) | myframe->data[12]) >> 1;
+	height = ((myframe->data[15] << 8) | myframe->data[14]) >> 1;
+
 	if (myframe->hdrwidth != width) {
 		PDEBUG(0, "Decoder find WidthxHeight %dx%d", width,height);
 		done = ERR_CORRUPTFRAME;
@@ -2651,9 +2651,9 @@
 	} else {
 		// reset info.dri
 	    myframe->decoder->info.dri = 0;
-	    memcpy(myframe->tmpbuffer, myframe->data +0x280,
+	    memcpy(myframe->tmpbuffer, myframe->data + 0x20 /* +0x280 */,
 		   myframe->scanlength-0x280);
-	    done = jpeg_decode422(myframe, bgr);
+	    done = yvyu_translate(myframe, bgr);
 	    }
 	    }
 	break;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Spca50x-devs mailing list
Spca50x-devs@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/spca50x-devs