} else if (find_info_tag(buf, sizeof(buf), "buffer", info)) { int prebuffer = strtol(buf, 0, 10); stream_pos = gettime() - prebuffer * 1000000;
static int open_input_stream(HTTPContext *c, const char *info){    char buf[128];    char input_filename[1024];    AVFormatContext *s;    int buf_size;    INT64 stream_pos;    /* find file name */    if (c->stream->feed) {        strcpy(input_filename, c->stream->feed->feed_filename);        buf_size = FFM_PACKET_SIZE;        /* compute position (absolute time) */        if (find_info_tag(buf, sizeof(buf), "date", info)) {            stream_pos = parse_date(buf, 0);        } else {            stream_pos = gettime();        }    } else {        strcpy(input_filename, c->stream->feed_filename);        buf_size = 0;        /* compute position (relative time) */        if (find_info_tag(buf, sizeof(buf), "date", info)) {            stream_pos = parse_date(buf, 1);        } else {            stream_pos = 0;        }    }    if (input_filename[0] == '\0')        return -1;    /* open stream */    s = av_open_input_file(input_filename, NULL, buf_size, NULL);    if (!s)        return -1;    c->fmt_in = s;    if (c->fmt_in->format->read_seek) {        c->fmt_in->format->read_seek(c->fmt_in, stream_pos);    }        //    printf("stream %s opened pos=%0.6f\n", input_filename, stream_pos / 1000000.0);    return 0;}