regrab.c

来自「网络摄像头的webserver」· C语言 代码 · 共 63 行

C
63
字号
#include <stdlib.h>#include <libxml/parser.h>#include "config.h"#define MODULE_FILTER#include "module.h"#include "image.h"#include "xmlhelp.h"#include "log.h"#define MODNAME "regrab"char *name = MODNAME;char *version = VERSION;struct regrabctx {	int count;	int sleeptime;	int upto;};staticstruct regrabctx *regrab_init(xmlNodePtr node){	struct regrabctx *ctx;		ctx = malloc(sizeof(*ctx));	memset(ctx, 0, sizeof(*ctx));		for (node = node->xml_children; node; node = node->next) {		if (xml_isnode(node, "times"))			ctx->count = xml_atoi(node, 0);		else if (xml_isnode(node, "delay"))			ctx->sleeptime = xml_atoi(node, 0);	}		return ctx;}intfilter(struct image *img, xmlNodePtr node, void **instctx){	struct regrabctx *ctx;		if (!*instctx) {		ctx = regrab_init(node);		*instctx = ctx;	}	else		ctx = *instctx;			ctx->upto++;	if (ctx->upto > ctx->count) {		ctx->upto = 0;		return 0;	}		return ctx->sleeptime * 1000;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?