/* vi: set sts=2 sw=2 :*/
-
/* rfxswf.c
Library for creating and reading SWF files or parts of it.
Part of the swftools package.
- Copyright (c) 2000, 2001 Rainer Böhme <rfxswf@reflex-studio.de>
-
- This file is distributed under the GPL, see file COPYING for details
+ Copyright (c) 2000-2003 Rainer Böhme <rfxswf@reflex-studio.de>
+ Copyright (c) 2003 Matthias Kramm <kramm@quiss.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-*/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include "rfxswf.h"
void swf_GetRGB(TAG * t, RGBA * col)
{
RGBA dummy;
- if(!col);
+ if(!col)
col = &dummy;
col->r = swf_GetU8(t);
col->g = swf_GetU8(t);
}
}
+int swf_CountUBits(U32 v,int nbits)
+{ int n = 32;
+ U32 m = 0x80000000;
+ if(v == 0x00000000) n = 0;
+ else
+ while (!(v&m))
+ { n--;
+ m>>=1;
+ }
+ return (n>nbits)?n:nbits;
+}
+
int swf_CountBits(U32 v,int nbits)
{ int n = 33;
U32 m = 0x80000000;
- if (!v) n = 0; else
if (v&m)
- { while (v&m)
+ { if(v == 0xffffffff) n = 1;
+ else
+ while (v&m)
{ n--;
m>>=1;
- if (!m) break;
}
}
else
- { while (!(v&m))
+ { if(v == 0x00000000) n = 0;
+ else
+ while (!(v&m))
{ n--;
m>>=1;
- if (!m) break;
}
}
return (n>nbits)?n:nbits;
{
struct writer_t writer;
swf->compressed = 0;
- if(handle<0)
+ if(handle<0) {
+ writer_init_nullwriter(&writer);
return swf_WriteSWF2(&writer, swf);
+ }
writer_init_filewriter(&writer, handle);
return swf_WriteSWF2(&writer, swf);
}
{
struct writer_t writer;
swf->compressed = 1;
- if(handle<0)
+ if(handle<0) {
+ writer_init_nullwriter(&writer);
return swf_WriteSWF2(&writer, swf);
+ }
writer_init_filewriter(&writer, handle);
return swf_WriteSWF2(&writer, swf);
}
#include "modules/swfbits.c"
#include "modules/swfaction.c"
#include "modules/swfsound.c"
-#include "h.263/swfvideo.c"