コード例 #1
0
ファイル: main.c プロジェクト: MinimumLaw/niitm-linux-2015
int main(int argc, char** argv, char** env)
{
    if(argc != 3) {
	printf("USAGE:\n\t%s <PIPE_IN> <PIPE_OUT>\n", argv[0]);
	return -1;
    }

    fd_in = open_in(argv[1]);
    if(fd_in < 0) {
	perror("in pine");
	return errno;
    };

    fd_out = open_out(argv[2]);
    if(fd_out < 0) {
	perror("out pipe");
	return errno;
    };

    /* chat here */
    while(1) {
	int ret;
	char buff[80];
	struct pollfd pfd[] = {
	    {
		.fd = fd_in,
		.events = POLLIN,
	    },
	    {
		.fd = STDIN_FILENO,
		.events = POLLIN,
	    },
	};
コード例 #2
0
ファイル: main.c プロジェクト: MinimumLaw/niitm-linux-2015
int open_in(char* name)
{
    int ret = open(name, O_RDWR);
    if(ret < 0) {
	printf("DEBUG: %s not present. Create\n", name);
	umask(0);
	ret = mkfifo(name, 0666);
	if(ret < 0) return ret;
	printf("DEBUG: %s Created\n", name);
	return open_in(name);
    }
    printf("DEBUG: %s open success\n", name);
    return ret;
}
コード例 #3
0
ファイル: font2c.c プロジェクト: OrangeTide/everything
static int
parse_args(int argc, char **argv, struct state *st)
{
	char **cur, n;

	for (cur = argv + 1, n = 0; cur < argv + argc; cur++) {
		const char *arg = *cur;
		switch (n) {
		case 0: /* input file */
			n++;
			if (arg[0] == '-' && !arg[1]) {
				st->inname = "<STDIN>";
				st->inf = stdin;
			} else {
				st->inname = arg;
				st->inf = open_in(st->inname);
			}
			if (!st->inf)
				goto failure;
			break;
		case 1: /* output file */
			n++;
			if (arg[0] == '-' && !arg[1]) {
				st->outname = "<STDOUT>";
				st->outf = stdout;
			} else {
				st->outname = arg;
				st->outf = open_out(st->outname);
			}
			if (!st->outf)
				goto failure;
			break;
		default:
			fprintf(stderr, "usage: %s <in-file.bmp> [<out-file.c>]\n", argv[0]);
			return 1;
		}
	}

	if (n == 1) {
		st->outname = "<STDOUT>";
		st->outf = stdout;
	}

	if (n > 0)
		return 0; /* success */
failure:
	return -1; /* failure */
}
コード例 #4
0
ファイル: hls.c プロジェクト: lihp1603/libav
static int parse_playlist(HLSContext *c, const char *url,
                          struct variant *var, AVIOContext *in)
{
    int ret = 0, is_segment = 0, is_variant = 0, bandwidth = 0;
    int64_t duration = 0;
    enum KeyType key_type = KEY_NONE;
    uint8_t iv[16] = "";
    int has_iv = 0;
    char key[MAX_URL_SIZE] = "";
    char line[1024];
    const char *ptr;
    int close_in = 0;
    uint8_t *new_url = NULL;

    if (!in) {
        ret = open_in(c, &in, url);
        if (ret < 0)
            return ret;
        close_in = 1;
    }

    if (av_opt_get(in, "location", AV_OPT_SEARCH_CHILDREN, &new_url) >= 0)
        url = new_url;

    read_chomp_line(in, line, sizeof(line));
    if (strcmp(line, "#EXTM3U")) {
        ret = AVERROR_INVALIDDATA;
        goto fail;
    }

    if (var) {
        free_segment_list(var);
        var->finished = 0;
    }
    while (!in->eof_reached) {
        read_chomp_line(in, line, sizeof(line));
        if (av_strstart(line, "#EXT-X-STREAM-INF:", &ptr)) {
            struct variant_info info = {{0}};
            is_variant = 1;
            ff_parse_key_value(ptr, (ff_parse_key_val_cb) handle_variant_args,
                               &info);
            bandwidth = atoi(info.bandwidth);
        } else if (av_strstart(line, "#EXT-X-KEY:", &ptr)) {
            struct key_info info = {{0}};
            ff_parse_key_value(ptr, (ff_parse_key_val_cb) handle_key_args,
                               &info);
            key_type = KEY_NONE;
            has_iv = 0;
            if (!strcmp(info.method, "AES-128"))
                key_type = KEY_AES_128;
            if (!strncmp(info.iv, "0x", 2) || !strncmp(info.iv, "0X", 2)) {
                ff_hex_to_data(iv, info.iv + 2);
                has_iv = 1;
            }
            av_strlcpy(key, info.uri, sizeof(key));
        } else if (av_strstart(line, "#EXT-X-TARGETDURATION:", &ptr)) {
            if (!var) {
                var = new_variant(c, 0, url, NULL);
                if (!var) {
                    ret = AVERROR(ENOMEM);
                    goto fail;
                }
            }
            var->target_duration = atoi(ptr) * AV_TIME_BASE;
        } else if (av_strstart(line, "#EXT-X-MEDIA-SEQUENCE:", &ptr)) {
            if (!var) {
                var = new_variant(c, 0, url, NULL);
                if (!var) {
                    ret = AVERROR(ENOMEM);
                    goto fail;
                }
            }
            var->start_seq_no = atoi(ptr);
        } else if (av_strstart(line, "#EXT-X-ENDLIST", &ptr)) {
            if (var)
                var->finished = 1;
        } else if (av_strstart(line, "#EXTINF:", &ptr)) {
            is_segment = 1;
            duration   = atof(ptr) * AV_TIME_BASE;
        } else if (av_strstart(line, "#", NULL)) {
            continue;
        } else if (line[0]) {
            if (is_variant) {
                if (!new_variant(c, bandwidth, line, url)) {
                    ret = AVERROR(ENOMEM);
                    goto fail;
                }
                is_variant = 0;
                bandwidth  = 0;
            }
            if (is_segment) {
                struct segment *seg;
                if (!var) {
                    var = new_variant(c, 0, url, NULL);
                    if (!var) {
                        ret = AVERROR(ENOMEM);
                        goto fail;
                    }
                }
                seg = av_malloc(sizeof(struct segment));
                if (!seg) {
                    ret = AVERROR(ENOMEM);
                    goto fail;
                }
                seg->duration = duration;
                seg->key_type = key_type;
                if (has_iv) {
                    memcpy(seg->iv, iv, sizeof(iv));
                } else {
                    int seq = var->start_seq_no + var->n_segments;
                    memset(seg->iv, 0, sizeof(seg->iv));
                    AV_WB32(seg->iv + 12, seq);
                }
                ff_make_absolute_url(seg->key, sizeof(seg->key), url, key);
                ff_make_absolute_url(seg->url, sizeof(seg->url), url, line);
                dynarray_add(&var->segments, &var->n_segments, seg);
                is_segment = 0;
            }
        }
    }
    if (var)
        var->last_load_time = av_gettime_relative();

fail:
    av_free(new_url);
    if (close_in)
        avio_close(in);
    return ret;
}
コード例 #5
0
ファイル: paview.c プロジェクト: ComposersDesktop/CDP7
int main(int argc,char *argv[])
{
	unsigned int start = hz1000();
	char filename[200];
	double starttime, endtime;
	int sonogram;

	if(argc==2 && (strcmp(argv[1],"--version") == 0)) {
		fprintf(stdout,"%s\n",cdp_version);
		fflush(stdout);
		return 0;
	}
	/* initialise SFSYS	*/
	if( sflinit("paview") < 0 ) {
		fprintf(stdout,"ERROR: Cannot initialise soundfile system.\n");
		fflush(stdout);
		return tidy_up(3,start);
	}
	if(argc!=7)  {
		fprintf(stdout,"ERROR: Wrong number of arguments.\n");
		fflush(stdout);
		return tidy_up(2,start);
	}
	if(sscanf(argv[2],"%lf",&starttime)!=1) {
		fprintf(stdout,"ERROR: cannot read start time.\n");
		fflush(stdout);
		return tidy_up(2,start);
	}
	if(sscanf(argv[3],"%lf",&endtime)!=1) {
		fprintf(stdout,"ERROR: cannot read end time.\n");
		fflush(stdout);
		return tidy_up(2,start);
	}
	if(sscanf(argv[4],"%d",&sonogram)!=1) {
		fprintf(stdout,"ERROR: cannot read sonogram flag.\n");
		fflush(stdout);
		return tidy_up(2,start);
	}
	if(sscanf(argv[5],"%d",&startchan)!=1) {
		fprintf(stdout,"ERROR: cannot read sonogram flag.\n");
		fflush(stdout);
		return tidy_up(2,start);
	}
	if(sscanf(argv[6],"%d",&endchan)!=1) {
		fprintf(stdout,"ERROR: cannot read sonogram flag.\n");
		fflush(stdout);
		return tidy_up(2,start);
	}
	/* open input file */
	if(open_in(argv[1]) < 0)
		return tidy_up(2,start);

	startwin = (int)floor(starttime/frametime);
	endwin   = (int)ceil(endtime/frametime);

	strcpy(filename,argv[1]);

	/* get biggest buffer */
	if(get_big_buf() == 0)
		return tidy_up(1,start);
		
	/* max soundfiles */
	if(make_textfile(sonogram,filename)<0)
		return tidy_up(1,start);

	/* tidy up */
	return tidy_up(0,start);
}