[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[pygame] gsoc midterm report for the camera module




Midterm report
##############

With the midterm evaluation behind us I thought it would be useful to post a update
on the progress on the camera module for Mac OSX. The current version on
github.com/ab3/pygame-mirror/ can read a frame from the camera and copy it to the surface. There is still something wrong with the colors, this has probably something to do with the masks in surf->format. I have tried out some combination but non seem to work, so if you have suggestion on how to get the colors write pleas
post them on the pygame mailinglist.

I have thoroughly cleaned up the camera_mac.m file and have removed all Cocoa code because it caused to many problems. Only the mac_gworld_to_nsimage used Cocoa so I didn't have to trow away too much code. The following functions are now
available:
* mac_list_cameras()
* mac_open_device ()
* mac_init_device()
* mac_close_device()
* mac_start_capturing()
* mac_stop_capturing ()
* mac_read_raw()
note: When I try to print the string I get nothing, this is probably because
	of a \0 byte in the array.
* mac_read_frame()
* mac_camera_idle()
* mac_copy_gworld_to_surface()
	note: There is something wrong with the colors.

The PyCameraObject strct has altered a bit because I don't use a ImageSequence anymore because it was easier to get the frame copy the frame directly instead of recording a frame into a sequence and then decompressing a frame out of it. In addition to removing the ImageSequence I make use of the buffer struct. Here is the
current PyCameraObject struct:
    typedef struct {
        PyObject_HEAD
        char* device_name;              // unique name of the device
SeqGrabComponent component; // A type used by the Sequence Grabber API SGChannel channel; // Channel of the Sequence Grabber GWorldPtr gworld; // Pointer to the struct that holds the
					// data of the captured image
        Rect boundsRect;                // bounds of the image frame
long size; // size of the image in our buffer to draw
        short bytes;			// number of bytes in gworld
        struct buffer pixels;		// pixels
    } PyCameraObject;

A usual you can find the latest version on github.com/ab3 so if you would like to test the latest changes or would like to help with the color problem or the read_raw function,
you are always welcome.

ToDo
====
Here is a list of thing I still have to finish I still have to do:
* fix the colors of read_frame()
* fix read_raw()
* implement set_controller() and get_controller()
* add simple computer vision stuff
	* thresholding with hysteresis
	*...
* optimization, sbggr8_to_rgb???
* implement proof of concept game...

Conclusion
==========
So this concludes my midterm report, feel free to post any bugs, comments and
suggestions

Slu