drop stream on error

This commit is contained in:
Devaev Maxim 2018-09-20 21:48:01 +03:00
parent 2b1afb8958
commit c9c843d236
2 changed files with 11 additions and 5 deletions

View File

@ -293,6 +293,7 @@ static void _http_exposed_refresh(UNUSED int fd, UNUSED short what, void *v_serv
LOG_DEBUG("Refreshing HTTP exposed ...");
A_PTHREAD_M_LOCK(&server->run->stream->mutex);
if (server->run->stream->picture.size > 0) {
if (server->run->stream->picture.allocated > server->run->exposed->picture.allocated) {
A_REALLOC(server->run->exposed->picture.data, server->run->stream->picture.allocated);
@ -303,12 +304,14 @@ static void _http_exposed_refresh(UNUSED int fd, UNUSED short what, void *v_serv
server->run->stream->picture.data,
server->run->stream->picture.size * sizeof(*server->run->exposed->picture.data)
);
server->run->exposed->picture.size = server->run->stream->picture.size;
server->run->exposed->width = server->run->stream->width;
server->run->exposed->height = server->run->stream->height;
server->run->exposed->online = server->run->stream->online;
server->run->stream->updated = false;
}
server->run->exposed->picture.size = server->run->stream->picture.size;
server->run->exposed->width = server->run->stream->width;
server->run->exposed->height = server->run->stream->height;
server->run->exposed->online = server->run->stream->online;
server->run->stream->updated = false;
A_PTHREAD_M_UNLOCK(&server->run->stream->mutex);
_http_send_stream(server);

View File

@ -250,7 +250,10 @@ void stream_loop(struct stream_t *stream) {
A_PTHREAD_M_LOCK(&stream->mutex);
stream->picture.size = 0;
free(stream->picture.data);
stream->width = 0;
stream->height = 0;
stream->online = false;
stream->updated = true;
A_PTHREAD_M_UNLOCK(&stream->mutex);
}