X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=avi2swf%2Favi2swf.cc;h=84fad76c3b74f9ae6e4d99ffe659d913ab93b0ac;hb=b35ef028cc3f91c3e349aa8c330f52dba3da29b3;hp=3c63920aa63d827c92830d716d7be9401481717c;hpb=750fcbdf1641a11f6050361021859337ceb3997d;p=swftools.git diff --git a/avi2swf/avi2swf.cc b/avi2swf/avi2swf.cc index 3c63920..84fad76 100644 --- a/avi2swf/avi2swf.cc +++ b/avi2swf/avi2swf.cc @@ -14,7 +14,7 @@ extern "C" { #include "../lib/args.h" } #include -#if (AVIFILE_MAJOR_VERSION == 0) && (AVIFILE_MINOR_VERSION==6) +#if (AVIFILE_MAJOR_VERSION == 0) && (AVIFILE_MINOR_VERSION>=6) #include #include #include @@ -57,6 +57,7 @@ static int jpeg_quality = 20; static char zlib = 0; static double scale = 1.0; +static int flip = 0; #ifndef ST_DEFINEBITSJPEG #define ST_DEFINEBITSJPEG 6 @@ -69,6 +70,7 @@ struct options_t options[] = {"v","verbose"}, {"o","output"}, {"n","num"}, + {"p","flip"}, {"s","start"}, {"z","zlib"}, {"V","version"}, @@ -93,6 +95,10 @@ int args_callback_option(char*name,char*val) firstframe = atoi(val); return 1; } + else if(!strcmp(name, "p")) { + flip = 1; + return 0; + } else if(!strcmp(name, "d")) { scale = atoi(val)/100.0; if(scale>1.0 || scale<=0) { @@ -120,6 +126,7 @@ void args_callback_usage(char*name) printf("\t-n , --num frames\t Number of frames to encode\n"); printf("\t-s , --start frame\t First frame to encode\n"); printf("\t-d , --scale factor\t Scale to factor percent\n"); + printf("\t-p , --flip\t\t Turn movie upside down\n"); printf("\t-V , --version\t\t Print program version and exit\n"); exit(0); } @@ -754,11 +761,14 @@ int main (int argc,char ** argv) { int x,y; for(y=0;yAt(oldheight-(int)((yy*yblocksize+y)*reziscale)); -#else - U8*mydata = img->At((int)((yy*yblocksize+y)*reziscale)); -#endif + /* some avifile versions flip the image some don't. Maybe this is + even movie dependent. We just let the user decide which side's up. */ + U8*mydata; + if(flip) + mydata = img->At(oldheight-(int)((yy*yblocksize+y)*reziscale)); + else + mydata = img->At((int)((yy*yblocksize+y)*reziscale)); + for(x=0;x