#endif
void swf_SetVideoStreamDefine(TAG*tag, VIDEOSTREAM*stream, U16 frames, U16 width, U16 height)
{
- swf_SetU16(tag, frames);
- swf_SetU16(tag, width);
- swf_SetU16(tag, height);
- //swf_SetU8(tag, 1); /* smoothing on */
- swf_SetU8(tag, 0); /* smoothing off */
- swf_SetU8(tag, 2); /* codec = h.263 sorenson spark */
-
#ifdef MAIN
totalframes = frames;
#endif
stream->height = height;
stream->bbx = width/16;
stream->bby = height/16;
- stream->current = (YUV*)malloc(width*height*sizeof(YUV));
- stream->oldpic = (YUV*)malloc(width*height*sizeof(YUV));
- stream->mvdx = (int*)malloc(stream->bbx*stream->bby*sizeof(int));
- stream->mvdy = (int*)malloc(stream->bbx*stream->bby*sizeof(int));
+ stream->current = (YUV*)rfx_calloc(width*height*sizeof(YUV));
+ stream->oldpic = (YUV*)rfx_calloc(width*height*sizeof(YUV));
+ stream->mvdx = (int*)rfx_alloc(stream->bbx*stream->bby*sizeof(int));
+ stream->mvdy = (int*)rfx_alloc(stream->bbx*stream->bby*sizeof(int));
stream->do_motion = 0;
- memset(stream->oldpic, 0, width*height*sizeof(YUV));
- memset(stream->current, 0, width*height*sizeof(YUV));
-
assert((stream->width&15) == 0);
assert((stream->height&15) == 0);
assert((stream->bbx*16) == stream->width);
assert((stream->bby*16) == stream->height);
+
+ swf_SetU16(tag, frames);
+ swf_SetU16(tag, width);
+ swf_SetU16(tag, height);
+ //swf_SetU8(tag, 1); /* smoothing on */
+ swf_SetU8(tag, 0); /* smoothing off */
+ swf_SetU8(tag, 2); /* codec = h.263 sorenson spark */
+
}
void swf_VideoStreamClear(VIDEOSTREAM*stream)
{
- free(stream->oldpic);stream->oldpic = 0;
- free(stream->current);stream->current = 0;
- free(stream->mvdx);stream->mvdx=0;
- free(stream->mvdy);stream->mvdy=0;
+ rfx_free(stream->oldpic);stream->oldpic = 0;
+ rfx_free(stream->current);stream->current = 0;
+ rfx_free(stream->mvdx);stream->mvdx=0;
+ rfx_free(stream->mvdy);stream->mvdy=0;
}
typedef struct _block_t
{
int bx, by;
int quant = 31;
+ int x,y;
s->quant = quant;
writeHeader(tag, s->width, s->height, s->frame, quant, TYPE_IFRAME);
- int x,y;
for(y=0;y<s->height;y++)
for(x=0;x<s->width;x++) {
s->current[y*s->width+x].y = 0;
VIDEOSTREAM stream;
VIDEOSTREAM* s = &stream;
TAG*tag;
- RGBA*pic = malloc(256*256*sizeof(RGBA));
+ RGBA*pic = (RGBA*)rfx_alloc(256*256*sizeof(RGBA));
block_t fb;
int x,y;
int bx,by;
RGBA* pic = 0;
VIDEOSTREAM stream;
- pic = malloc(width*height*4);
- memset(pic, 0, width*height*4);
+ pic = rfx_calloc(width*height*4);
memset(&swf,0,sizeof(SWF));
memset(&obj,0,sizeof(obj));
tag = swf_InsertTag(tag, ST_END);
int fi = open("black.swf", O_WRONLY|O_CREAT|O_TRUNC, 0644);
- if(swf_WriteSWC(fi,&swf)<0) {
+ if(swf_WriteSWF(fi,&swf)<0) {
fprintf(stderr,"WriteSWF() failed.\n");
}
close(fi);
memset(&stream, 0, sizeof(stream));
getPNG(fname, &width, &height, &data);
- pic = (RGBA*)malloc(width*height*sizeof(RGBA));
- pic2 = (RGBA*)malloc(width*height*sizeof(RGBA));
+ pic = (RGBA*)rfx_alloc(width*height*sizeof(RGBA));
+ pic2 = (RGBA*)rfx_alloc(width*height*sizeof(RGBA));
memcpy(pic, data, width*height*sizeof(RGBA));
- free(data);
+ rfx_free(data);
printf("Compressing %s, size %dx%d\n", fname, width, height);
tag = swf_InsertTag(tag, ST_END);
fi = open("video3.swf", O_WRONLY|O_CREAT|O_TRUNC, 0644);
- if(swf_WriteSWC(fi,&swf)<0) {
+ if(swf_WriteSWF(fi,&swf)<0) {
fprintf(stderr,"WriteSWF() failed.\n");
}
close(fi);