summaryrefslogtreecommitdiff
path: root/ffserver.c
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2013-11-28 22:47:18 +0100
committerStefano Sabatini <stefasab@gmail.com>2013-11-29 10:28:03 +0100
commit0124fca03fb34567055fd4cea32250a5138e5423 (patch)
treeb728a9f66abf165f3f920e65b47ff296e08e126b /ffserver.c
parentd2e46b11e489f0ca8be5b1ea45f6e743b568e382 (diff)
ffserver: extend feedback in http_start_receive_data()
Diffstat (limited to 'ffserver.c')
-rw-r--r--ffserver.c35
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;
}
}