Date: Thu, 6 Dec 2018 14:26:22 +0000 (UTC) From: Bernhard Froehlich <decke@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r486762 - in head/multimedia/tvheadend: . files Message-ID: <201812061426.wB6EQMI0058265@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: decke Date: Thu Dec 6 14:26:22 2018 New Revision: 486762 URL: https://svnweb.freebsd.org/changeset/ports/486762 Log: - Fix sendfile() integration affecting webui - Fix epg compatibility issues in webui - Bump PORTREVISION Both patches are already included upstream. Submitted by: Jongsung Kim <jongsung.kim@gmail.com> (via email to ports@) Added: head/multimedia/tvheadend/files/patch-src_webui_static_app_epg.js (contents, props changed) head/multimedia/tvheadend/files/patch-src_webui_webui.c (contents, props changed) Modified: head/multimedia/tvheadend/Makefile Modified: head/multimedia/tvheadend/Makefile ============================================================================== --- head/multimedia/tvheadend/Makefile Thu Dec 6 14:19:23 2018 (r486761) +++ head/multimedia/tvheadend/Makefile Thu Dec 6 14:26:22 2018 (r486762) @@ -4,7 +4,7 @@ PORTNAME= tvheadend PORTVERSION= 4.2.7 DISTVERSIONPREFIX= v -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= multimedia MAINTAINER= decke@FreeBSD.org Added: head/multimedia/tvheadend/files/patch-src_webui_static_app_epg.js ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/tvheadend/files/patch-src_webui_static_app_epg.js Thu Dec 6 14:26:22 2018 (r486762) @@ -0,0 +1,44 @@ +From 5363fb5cefbf8f9f0f4d38f81252ce93942665e4 Mon Sep 17 00:00:00 2001 +From: Jongsung Kim <jongsung.kim@gmail.com> +Date: Tue, 20 Nov 2018 17:36:10 +0900 +Subject: [PATCH 2/2] webui: epg: fix compatibility issue for FreeBSD + +The EPG screen serviced by FreeBSD port of tvheadend has two abnormal control +behaviors: + + Reset All button makes the list empty + Typing and then deleting any search string also makes the list empty. + +This patch fixes the symptoms above. + +Patch tested with the latest FreeBSD port of tvheadend-4.2.7. + +Changes since v1: +- call reset only if required +--- + src/webui/static/app/epg.js | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/src/webui/static/app/epg.js b/src/webui/static/app/epg.js +index 2c8b914b2..7337177ef 100644 +--- src/webui/static/app/epg.js ++++ src/webui/static/app/epg.js +@@ -902,10 +902,11 @@ tvheadend.epg = function() { + epgFilterTitle.on('valid', function(c) { + var value = c.getValue(); + +- if (value.length < 1) +- value = null; +- +- if (epgStore.baseParams.title !== value) { ++ if (value.length < 1) { ++ delete epgStore.baseParams.title; ++ epgView.reset(); ++ } ++ else if (epgStore.baseParams.title !== value) { + epgStore.baseParams.title = value; + epgView.reset(); + } +-- +2.19.1 + Added: head/multimedia/tvheadend/files/patch-src_webui_webui.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/tvheadend/files/patch-src_webui_webui.c Thu Dec 6 14:26:22 2018 (r486762) @@ -0,0 +1,80 @@ +From 411f957733222e24df4ead9fb15332dcb2c116da Mon Sep 17 00:00:00 2001 +From: Jongsung Kim <jongsung.kim@gmail.com> +Date: Tue, 29 May 2018 03:42:04 +0900 +Subject: [PATCH 1/2] webui: fix http_serve_file() for FreeBSD + +This patch fixes two major problems of FreeBSD port of tvheadend: + +1. very high CPU usage while streaming a recored program +2. unable to stream the recorded program beyond 128MB. + +Unlike Linux sendfile(), FreeBSD sendfile() requires an explicit +file offset, and return value must be checked to catch any error +occurred. (i.e., closed connection) + +Patch tested with the latest FreeBSD port of tvheadend-4.2.6. +--- + src/webui/webui.c | 24 +++++++++++++++++------- + 1 file changed, 17 insertions(+), 7 deletions(-) + +diff --git a/src/webui/webui.c b/src/webui/webui.c +index 12b965230..331d998e9 100644 +--- src/webui/webui.c ++++ src/webui/webui.c +@@ -1570,7 +1570,7 @@ http_serve_file(http_connection_t *hc, const char *fname, + #if defined(PLATFORM_LINUX) + ssize_t r; + #elif defined(PLATFORM_FREEBSD) || defined(PLATFORM_DARWIN) +- off_t r; ++ off_t o, r; + #endif + + if (fconv) { +@@ -1631,11 +1631,15 @@ http_serve_file(http_connection_t *hc, const char *fname, + sprintf(range_buf, "bytes %jd-%jd/%jd", + file_start, file_end, (intmax_t)st.st_size); + ++#if defined(PLATFORM_LINUX) + if(file_start > 0) + if (lseek(fd, file_start, SEEK_SET) != file_start) { + close(fd); + return HTTP_STATUS_INTERNAL; + } ++#elif defined(PLATFORM_FREEBSD) || defined(PLATFORM_DARWIN) ++ o = file_start; ++#endif + + if (preop) { + ret = preop(hc, file_start, content_len, opaque); +@@ -1656,16 +1660,22 @@ http_serve_file(http_connection_t *hc, const char *fname, + chunk = MIN(1024 * ((stats ? 128 : 1024) * 1024), content_len); + #if defined(PLATFORM_LINUX) + r = sendfile(hc->hc_fd, fd, NULL, chunk); ++ if (r < 0) { ++ ret = -1; ++ break; ++ } + #elif defined(PLATFORM_FREEBSD) +- sendfile(fd, hc->hc_fd, 0, chunk, NULL, &r, 0); ++ ret = sendfile(fd, hc->hc_fd, o, chunk, NULL, &r, 0); ++ if (ret < 0) ++ break; ++ o += r; + #elif defined(PLATFORM_DARWIN) + r = chunk; +- sendfile(fd, hc->hc_fd, 0, &r, NULL, 0); +-#endif +- if(r < 0) { +- ret = -1; ++ ret = sendfile(fd, hc->hc_fd, o, &r, NULL, 0); ++ if (ret < 0) + break; +- } ++ o += r; ++#endif + content_len -= r; + if (stats) + stats(hc, r, opaque); +-- +2.19.1 +
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201812061426.wB6EQMI0058265>