/* Raydium - CQFD Corp. http://raydium.org/ License: GPL - GNU General Public License, see "gpl.txt" file. */ #ifndef DONT_INCLUDE_HEADERS #include "index.h" #else #include "headers/video.h" #endif #include "video.h" void raydium_video_init(void) { int i; for(i=0;i=0 && ialloc_sarray) ((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1); count=cinfo.output_height-1; while (cinfo.output_scanline < cinfo.output_height) { jpeg_read_scanlines(&cinfo, buffer, 1); memcpy(to+cinfo.image_width*cinfo.output_components*(cinfo.output_height-count-1),buffer[0],row_stride); count--; } jpeg_finish_decompress(&cinfo); jpeg_destroy_decompress(&cinfo); } int raydium_video_open(char *filename, char *as) { int id; char head[100]; int head_end; int i,j,c; /* // we must find any previous load of this video for(i=0;i=raydium_video_video[id].frames_total) { if(!raydium_video_video[id].loop) { raydium_video_video[id].playing=0; return; } raydium_video_video[id].elapsed=0; current=0; } if(current==raydium_video_video[id].last_decoded) { //printf("not again\n"); return; } fseek(raydium_video_video[id].fp,raydium_video_video[id].start+raydium_video_video[id].offsets[current],SEEK_SET); raydium_video_jpeg_decompress(raydium_video_video[id].fp,raydium_video_video[id].data); raydium_video_video[id].last_decoded=current; raydium_live_texture_refresh(raydium_video_video[id].live_id); } void raydium_video_callback(void) { int i; for(i=0;i