Binary files flirt-20060121/libflirt.a and flirt-20060121-avr32/libflirt.a differ diff -urNp flirt-20060121/Makefile flirt-20060121-avr32/Makefile --- flirt-20060121/Makefile 2006-01-22 02:31:45.000000000 +0100 +++ flirt-20060121-avr32/Makefile 2007-02-21 14:49:32.000000000 +0100 @@ -1,11 +1,11 @@ -CC = gcc +CC = avr32-linux-gcc CFLAGS = -g -Wall #CFLAGS = -g -O5 #CFLAGS = -pg -g -a -Wall -LDFLAGS = -lz -ljpeg -lmad -lpng -L/usr/local/lib +LDFLAGS = -lz -ljpeg -lmad -L/usr/avr32-linux/lib -static DATE = `date +%Y%m%d` OS = shell uname -s @@ -15,7 +15,7 @@ ifeq ("$(shell uname)", "Darwin") LDFLAGS += -framework Carbon else ifeq ("$(shell uname)", "Linux") - CFLAGS += -DDD_PLATFORM_LINUX=1 -DDD_LITTLE_ENDIAN=1 + CFLAGS += -DDD_PLATFORM_LINUX=1 -DDD_BIG_ENDIAN=1 else ifeq ("$(shell uname)", "FreeBSD") CFLAGS += -I/usr/local/include -DDD_PLATFORM_LINUX=1 -DDD_LITTLE_ENDIAN=1 -O2 -I/usr/local/include --- flirt-20060121/test.c 2006-01-22 02:31:45.000000000 +0100 +++ flirt-20060121-avr32/test.c 2007-02-21 15:00:48.000000000 +0100 @@ -1,12 +1,12 @@ - #include #include -#include +#include +#include #include "flirt-debug.h" -#define WIDTH 1024 -#define HEIGHT 768 +#define WIDTH 320 +#define HEIGHT 240 int frames = 0; @@ -29,54 +29,6 @@ traceFunction(const char* msg, void* dat } -void -savePNG(char* filename, ddImage* image, int width, int height) -{ - FILE* f = fopen(filename, "wb"); - int i; - png_bytep* row_pointers; - char* imagebytes = ddImage_getData(image); - int rowstride = ddImage_getRowstride(image); - - png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, png_voidp_NULL, png_voidp_NULL, png_voidp_NULL); - - png_infop info_ptr = png_create_info_struct(png_ptr); - - if (setjmp(png_jmpbuf(png_ptr))) - { - png_destroy_write_struct(&png_ptr, &info_ptr); - fclose(f); - return; - } - - png_init_io(png_ptr, f); - png_set_write_status_fn(png_ptr, png_write_status_ptr_NULL); - - png_set_IHDR(png_ptr, info_ptr, width, height, - 8, PNG_COLOR_TYPE_RGB_ALPHA, PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); - - row_pointers = png_malloc(png_ptr, height * sizeof(png_bytep)); - - for ( i = 0; i < height; ++i ) - row_pointers[i] = imagebytes + i * rowstride; - - png_set_rows(png_ptr, info_ptr, row_pointers); - -// XXX - should be endian check -#ifndef DD_PLATFORM_MAC_OS_X - png_set_swap_alpha(png_ptr); - png_set_bgr(png_ptr); -#endif - - png_write_png(png_ptr, info_ptr, 0, NULL); - - png_destroy_info_struct(png_ptr, &info_ptr); - png_destroy_write_struct(&png_ptr, &info_ptr); - - fclose(f); -} - int main(int argc, const char* argv[]) { FILE* f; @@ -103,19 +55,20 @@ int main(int argc, const char* argv[]) if ( ddPlayer_readMovie(player) != 0 ) bail("ddPlayer_readMovie() failed"); - + int fd = open("/dev/fb0", O_RDWR); for ( i = 0; i < 100; ++i ) { ddPlayer_step(player); while ( ddPlayer_executeFrameActions(player, STEP_FRAME) ) ; - ddPlayer_updateDisplay(player, NULL, NULL); + char* imagebytes = ddImage_getData(image); + lseek(fd, 0, SEEK_SET); + write(fd, imagebytes, HEIGHT*WIDTH*4); } - - savePNG("test.png", image, WIDTH, HEIGHT); - + + close(fd); dd_destroyPlayer(player); dd_destroyImage(image);