diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2013-11-28 22:47:18 +0100 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2013-11-29 10:28:03 +0100 |
commit | 0124fca03fb34567055fd4cea32250a5138e5423 (patch) | |
tree | b728a9f66abf165f3f920e65b47ff296e08e126b | |
parent | d2e46b11e489f0ca8be5b1ea45f6e743b568e382 (diff) | |
download | ffmpeg-0124fca03fb34567055fd4cea32250a5138e5423.tar.gz |
ffserver: extend feedback in http_start_receive_data()
-rw-r--r-- | ffserver.c | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/ffserver.c b/ffserver.c index b76349504f..a900b94ff1 100644 --- a/ffserver.c +++ b/ffserver.c @@ -2622,19 +2622,26 @@ static int http_send_data(HTTPContext *c) static int http_start_receive_data(HTTPContext *c) { int fd; + int ret; - if (c->stream->feed_opened) - return -1; + if (c->stream->feed_opened) { + http_log("Stream feed '%s' was not opened\n", c->stream->feed_filename); + return AVERROR(EINVAL); + } /* Don't permit writing to this one */ - if (c->stream->readonly) - return -1; + if (c->stream->readonly) { + http_log("Cannot write to read-only file '%s'\n", c->stream->feed_filename); + return AVERROR(EINVAL); + } /* open feed */ fd = open(c->stream->feed_filename, O_RDWR); if (fd < 0) { - http_log("Error opening feeder file: %s\n", strerror(errno)); - return -1; + ret = AVERROR(errno); + http_log("Could not open feed file '%s':%s \n", + c->stream->feed_filename, strerror(errno)); + return ret; } c->feed_fd = fd; @@ -2643,13 +2650,19 @@ static int http_start_receive_data(HTTPContext *c) ffm_write_write_index(c->feed_fd, FFM_PACKET_SIZE); http_log("Truncating feed file '%s'\n", c->stream->feed_filename); if (ftruncate(c->feed_fd, FFM_PACKET_SIZE) < 0) { - http_log("Error truncating feed file: %s\n", strerror(errno)); - return -1; + ret = AVERROR(errno); + http_log("Error truncating feed file '%s': %s\n", + c->stream->feed_filename, strerror(errno)); + return ret; } } else { - if ((c->stream->feed_write_index = ffm_read_write_index(fd)) < 0) { - http_log("Error reading write index from feed file: %s\n", strerror(errno)); - return -1; + ret = ffm_read_write_index(fd); + if (ret < 0) { + http_log("Error reading write index from feed file '%s': %s\n", + c->stream->feed_filename, strerror(errno)); + return ret; + } else { + c->stream->feed_write_index = ret; } } |