mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-17 20:17:55 +02:00
ffserver: improve error feedback in open_input_stream()
This commit is contained in:
parent
ddab41995f
commit
0e1e5d0053
25
ffserver.c
25
ffserver.c
@ -2184,8 +2184,10 @@ static int open_input_stream(HTTPContext *c, const char *info)
|
|||||||
buf_size = FFM_PACKET_SIZE;
|
buf_size = FFM_PACKET_SIZE;
|
||||||
/* compute position (absolute time) */
|
/* compute position (absolute time) */
|
||||||
if (av_find_info_tag(buf, sizeof(buf), "date", info)) {
|
if (av_find_info_tag(buf, sizeof(buf), "date", info)) {
|
||||||
if ((ret = av_parse_time(&stream_pos, buf, 0)) < 0)
|
if ((ret = av_parse_time(&stream_pos, buf, 0)) < 0) {
|
||||||
|
http_log("Invalid date specification '%s' for stream\n", buf);
|
||||||
return ret;
|
return ret;
|
||||||
|
}
|
||||||
} else if (av_find_info_tag(buf, sizeof(buf), "buffer", info)) {
|
} else if (av_find_info_tag(buf, sizeof(buf), "buffer", info)) {
|
||||||
int prebuffer = strtol(buf, 0, 10);
|
int prebuffer = strtol(buf, 0, 10);
|
||||||
stream_pos = av_gettime() - prebuffer * (int64_t)1000000;
|
stream_pos = av_gettime() - prebuffer * (int64_t)1000000;
|
||||||
@ -2196,18 +2198,22 @@ static int open_input_stream(HTTPContext *c, const char *info)
|
|||||||
buf_size = 0;
|
buf_size = 0;
|
||||||
/* compute position (relative time) */
|
/* compute position (relative time) */
|
||||||
if (av_find_info_tag(buf, sizeof(buf), "date", info)) {
|
if (av_find_info_tag(buf, sizeof(buf), "date", info)) {
|
||||||
if ((ret = av_parse_time(&stream_pos, buf, 1)) < 0)
|
if ((ret = av_parse_time(&stream_pos, buf, 1)) < 0) {
|
||||||
|
http_log("Invalid date specification '%s' for stream\n", buf);
|
||||||
return ret;
|
return ret;
|
||||||
|
}
|
||||||
} else
|
} else
|
||||||
stream_pos = 0;
|
stream_pos = 0;
|
||||||
}
|
}
|
||||||
if (input_filename[0] == '\0')
|
if (!input_filename[0]) {
|
||||||
return -1;
|
http_log("No filename was specified for stream\n");
|
||||||
|
return AVERROR(EINVAL);
|
||||||
|
}
|
||||||
|
|
||||||
/* open stream */
|
/* open stream */
|
||||||
if ((ret = avformat_open_input(&s, input_filename, c->stream->ifmt, &c->stream->in_opts)) < 0) {
|
if ((ret = avformat_open_input(&s, input_filename, c->stream->ifmt, &c->stream->in_opts)) < 0) {
|
||||||
http_log("could not open %s: %d\n", input_filename, ret);
|
http_log("Could not open input '%s': %s\n", input_filename, av_err2str(ret));
|
||||||
return -1;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set buffer size */
|
/* set buffer size */
|
||||||
@ -2215,10 +2221,11 @@ static int open_input_stream(HTTPContext *c, const char *info)
|
|||||||
|
|
||||||
s->flags |= AVFMT_FLAG_GENPTS;
|
s->flags |= AVFMT_FLAG_GENPTS;
|
||||||
c->fmt_in = s;
|
c->fmt_in = s;
|
||||||
if (strcmp(s->iformat->name, "ffm") && avformat_find_stream_info(c->fmt_in, NULL) < 0) {
|
if (strcmp(s->iformat->name, "ffm") &&
|
||||||
http_log("Could not find stream info '%s'\n", input_filename);
|
(ret = avformat_find_stream_info(c->fmt_in, NULL)) < 0) {
|
||||||
|
http_log("Could not find stream info for input '%s'\n", input_filename);
|
||||||
avformat_close_input(&s);
|
avformat_close_input(&s);
|
||||||
return -1;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* choose stream as clock source (we favorize video stream if
|
/* choose stream as clock source (we favorize video stream if
|
||||||
|
Loading…
x
Reference in New Issue
Block a user