diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2013-11-28 21:04:50 +0100 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2013-11-28 23:13:45 +0100 |
commit | 0e1e5d005329ea7e3f99d97bf2dfa390233fd0ff (patch) | |
tree | e73f703d9d4ffbeb560112c0be3c352ba464e1d7 /ffserver.c | |
parent | ddab41995fe185eb04ffe05b98fd9df99a7c0335 (diff) | |
download | ffmpeg-0e1e5d005329ea7e3f99d97bf2dfa390233fd0ff.tar.gz |
ffserver: improve error feedback in open_input_stream()
Diffstat (limited to 'ffserver.c')
-rw-r--r-- | ffserver.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/ffserver.c b/ffserver.c index 0243a98f4f..4b70dc298e 100644 --- a/ffserver.c +++ b/ffserver.c @@ -2184,8 +2184,10 @@ static int open_input_stream(HTTPContext *c, const char *info) buf_size = FFM_PACKET_SIZE; /* compute position (absolute time) */ 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; + } } else if (av_find_info_tag(buf, sizeof(buf), "buffer", info)) { int prebuffer = strtol(buf, 0, 10); 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; /* compute position (relative time) */ 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; + } } else stream_pos = 0; } - if (input_filename[0] == '\0') - return -1; + if (!input_filename[0]) { + http_log("No filename was specified for stream\n"); + return AVERROR(EINVAL); + } /* open stream */ 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); - return -1; + http_log("Could not open input '%s': %s\n", input_filename, av_err2str(ret)); + return ret; } /* set buffer size */ @@ -2215,10 +2221,11 @@ static int open_input_stream(HTTPContext *c, const char *info) s->flags |= AVFMT_FLAG_GENPTS; c->fmt_in = s; - if (strcmp(s->iformat->name, "ffm") && avformat_find_stream_info(c->fmt_in, NULL) < 0) { - http_log("Could not find stream info '%s'\n", input_filename); + if (strcmp(s->iformat->name, "ffm") && + (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); - return -1; + return ret; } /* choose stream as clock source (we favorize video stream if |