X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fexample%2Favi2swf.cc;h=7f3ad62756008bea2f0cb841913a17505694ed25;hb=4d594c96310f1d8abf2aa89ab931352a04632ccb;hp=11d812b23f5f8123a6ac7d4e7d493f4746e7d192;hpb=74e953401e1f5b89e3fa355413f0ec92744d78c6;p=swftools.git diff --git a/lib/example/avi2swf.cc b/lib/example/avi2swf.cc index 11d812b..7f3ad62 100644 --- a/lib/example/avi2swf.cc +++ b/lib/example/avi2swf.cc @@ -109,6 +109,11 @@ int main (int argc,char ** argv) int frame = 0; + int lastsize = (head.dwWidth+3) * head.dwHeight * 4; + U8* lastdata = (U8*)malloc(lastsize); + U8* data; + memset(lastdata,0, lastsize); + while(1) { if(vstream->ReadFrame()<0) { printf("\n"); @@ -118,7 +123,7 @@ int main (int argc,char ** argv) fflush(stdout); CImage*img = vstream->GetFrame(); img->ToRGB(); - U8* data = img->data(); + data = img->data(); int width = img->width(); int bpp = img->bpp(); int width4 = width*4; @@ -143,19 +148,49 @@ int main (int argc,char ** argv) */ int type = 1; + int rel = 0; if(type == 0) { tag = swf_InsertTag(tag, ST_DEFINEBITSLOSSLESS); swf_SetU16(tag, frame*2); + U8*mylastdata = lastdata; for(y=0;yat(y); + U8*mydata = img->at(y); + if(!rel) for(x=0;x64) + { + nd[3]=mydata[0]; + nd[2]=mydata[1]; + nd[1]=mydata[2]; + nd[0]=255; + } else { + nd[3]=0; + nd[2]=0; + nd[1]=0; + nd[0]=0; + } + mylastdata[2] = mydata[2]; + mylastdata[1] = mydata[1]; + mylastdata[0] = mydata[0]; + nd+=4; + mydata+=3; + mylastdata+=3; } } swf_SetLosslessBits(tag,width,height,newdata,BMF_32BIT); @@ -163,16 +198,26 @@ int main (int argc,char ** argv) if(type == 1) { tag = swf_InsertTag(tag, ST_DEFINEBITSJPEG2); swf_SetU16(tag, frame*2); - JPEGBITS * jb = swf_SetJPEGBitsStart(tag,width,height,10); + JPEGBITS * jb = swf_SetJPEGBitsStart(tag,width,height,1); + U8*mylastdata = lastdata; for(y=0;yat(y); + U8*mydata = img->at(y); for(x=0;x