forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
media-tv/tvheadend: Version bump to 4.2.6
Closes: https://bugs.gentoo.org/665086 Package-Manager: Portage-2.3.48, Repoman-2.3.10
- Loading branch information
Showing
4 changed files
with
346 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
DIST tvheadend-4.2.4.tar.gz 21526564 BLAKE2B 19c571bb253041bd122306eaa516071d096d747b03eaf623b45b79fc0511633a75f1a0925a890207c994da001a2ba3404d1860b91236adae34e307bcf8c57796 SHA512 333a3509da198f5d96316f30fd010a216262315614db302c83405de78d29b32b1d878c0abd7fae2214713107e6955478ee3222b18888a84c57810035af882df4 | ||
DIST tvheadend-4.2.6.tar.gz 21528720 BLAKE2B 358373bc19bd4c27ddb597bb14e29e2f451d4a1efd075f40c0324d692b5fdcac0d23f2f626ba9d0ca235f7d0c91930c5bf2438d0b6537af187a9fb3fcf36c419 SHA512 6291b0ba1d9af11d5295bf6804988835e746db2d3ebbd465a22e293a1108225c8c361762b78213c881cd15d7dedd16092f28a97c9e5b38f44920848bfbaf9709 |
115 changes: 115 additions & 0 deletions
115
media-tv/tvheadend/files/tvheadend-4.2.5-ffmpeg_3.5.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
diff -up ./src/muxer/muxer_libav.c.orig ./src/muxer/muxer_libav.c | ||
--- ./src/muxer/muxer_libav.c.orig 2017-12-18 09:57:28.000000000 +0100 | ||
+++ ./src/muxer/muxer_libav.c 2018-01-23 14:24:07.923509542 +0100 | ||
@@ -174,7 +174,7 @@ lav_muxer_add_stream(lav_muxer_t *lm, | ||
} | ||
|
||
if(lm->lm_oc->oformat->flags & AVFMT_GLOBALHEADER) | ||
- c->flags |= CODEC_FLAG_GLOBAL_HEADER; | ||
+ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; | ||
|
||
return 0; | ||
} | ||
diff -up ./src/plumbing/transcoding.c.orig ./src/plumbing/transcoding.c | ||
--- ./src/plumbing/transcoding.c.orig 2017-12-18 09:57:28.000000000 +0100 | ||
+++ ./src/plumbing/transcoding.c 2018-01-23 14:43:14.873964416 +0100 | ||
@@ -19,7 +19,7 @@ | ||
#include <unistd.h> | ||
#include <libavformat/avformat.h> | ||
#include <libavcodec/avcodec.h> | ||
-#include <libavfilter/avfiltergraph.h> | ||
+#include <libavfilter/avfilter.h> | ||
#include <libavfilter/buffersink.h> | ||
#include <libavfilter/buffersrc.h> | ||
#include <libavutil/opt.h> | ||
@@ -574,7 +574,7 @@ transcoder_stream_audio(transcoder_t *t, | ||
octx->channels = as->aud_channels ? as->aud_channels : ictx->channels; | ||
octx->channel_layout = transcode_get_channel_layout(&octx->channels, ocodec); | ||
octx->bit_rate = as->aud_bitrate ? as->aud_bitrate : 0; | ||
- octx->flags |= CODEC_FLAG_GLOBAL_HEADER; | ||
+ octx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; | ||
|
||
if (!octx->sample_rate) { | ||
tvherror(LS_TRANSCODE, "%04X: audio encoder has no suitable sample rate!", shortid(t)); | ||
@@ -619,7 +619,7 @@ transcoder_stream_audio(transcoder_t *t, | ||
break; | ||
|
||
case SCT_AAC: | ||
- octx->flags |= CODEC_FLAG_BITEXACT; | ||
+ octx->flags |= AV_CODEC_FLAG_BITEXACT; | ||
// use 64 kbit per channel as default | ||
if (octx->bit_rate == 0) { | ||
octx->bit_rate = octx->channels * 64000; | ||
@@ -630,10 +630,10 @@ transcoder_stream_audio(transcoder_t *t, | ||
// use vbr with quality setting as default | ||
// and also use a user specified bitrate < 16 kbit as quality setting | ||
if (octx->bit_rate == 0) { | ||
- octx->flags |= CODEC_FLAG_QSCALE; | ||
+ octx->flags |= AV_CODEC_FLAG_QSCALE; | ||
octx->global_quality = 4 * FF_QP2LAMBDA; | ||
} else if (t->t_props.tp_abitrate < 16) { | ||
- octx->flags |= CODEC_FLAG_QSCALE; | ||
+ octx->flags |= AV_CODEC_FLAG_QSCALE; | ||
octx->global_quality = t->t_props.tp_abitrate * FF_QP2LAMBDA; | ||
octx->bit_rate = 0; | ||
} | ||
@@ -1048,7 +1048,7 @@ create_video_filter(video_stream_t *vs, | ||
AVCodecContext *ictx, AVCodecContext *octx) | ||
{ | ||
AVFilterInOut *flt_inputs, *flt_outputs; | ||
- AVFilter *flt_bufsrc, *flt_bufsink; | ||
+ const AVFilter *flt_bufsrc, *flt_bufsink; | ||
enum AVPixelFormat pix_fmts[] = { 0, AV_PIX_FMT_NONE }; | ||
char opt[128]; | ||
int err; | ||
@@ -1289,12 +1289,12 @@ transcoder_stream_video(transcoder_t *t, | ||
else | ||
octx->pix_fmt = AV_PIX_FMT_YUV420P; | ||
|
||
- octx->flags |= CODEC_FLAG_GLOBAL_HEADER; | ||
+ octx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; | ||
|
||
if (t->t_props.tp_vbitrate < 64) { | ||
// encode with specified quality and optimize for low latency | ||
// valid values for quality are 2-31, smaller means better quality, use 5 as default | ||
- octx->flags |= CODEC_FLAG_QSCALE; | ||
+ octx->flags |= AV_CODEC_FLAG_QSCALE; | ||
octx->global_quality = FF_QP2LAMBDA * | ||
(t->t_props.tp_vbitrate == 0 ? 5 : MINMAX(t->t_props.tp_vbitrate, 2, 31)); | ||
} else { | ||
@@ -1340,7 +1340,7 @@ transcoder_stream_video(transcoder_t *t, | ||
else | ||
octx->pix_fmt = AV_PIX_FMT_YUV420P; | ||
|
||
- octx->flags |= CODEC_FLAG_GLOBAL_HEADER; | ||
+ octx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; | ||
|
||
// Default = "medium". We gain more encoding speed compared to the loss of quality when lowering it _slightly_. | ||
// select preset according to system performance and codec type | ||
@@ -1371,7 +1371,7 @@ transcoder_stream_video(transcoder_t *t, | ||
|
||
case SCT_HEVC: | ||
octx->pix_fmt = AV_PIX_FMT_YUV420P; | ||
- octx->flags |= CODEC_FLAG_GLOBAL_HEADER; | ||
+ octx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; | ||
|
||
// on all hardware ultrafast (or maybe superfast) should be safe | ||
// select preset according to system performance | ||
@@ -2177,7 +2177,7 @@ transcoder_get_capabilities(int experime | ||
if (!WORKING_ENCODER(p->id)) | ||
continue; | ||
|
||
- if (((p->capabilities & CODEC_CAP_EXPERIMENTAL) && !experimental) || | ||
+ if (((p->capabilities & AV_CODEC_CAP_EXPERIMENTAL) && !experimental) || | ||
(p->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE)) { | ||
continue; | ||
} | ||
@@ -2192,7 +2192,7 @@ transcoder_get_capabilities(int experime | ||
htsmsg_add_str(m, "name", p->name); | ||
snprintf(buf, sizeof(buf), "%s%s", | ||
p->long_name ?: "", | ||
- (p->capabilities & CODEC_CAP_EXPERIMENTAL) ? | ||
+ (p->capabilities & AV_CODEC_CAP_EXPERIMENTAL) ? | ||
" (Experimental)" : ""); | ||
if (buf[0] != '\0') | ||
htsmsg_add_str(m, "long_name", buf); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
diff -up ./src/dvr/dvr_rec.c.orig ./src/dvr/dvr_rec.c | ||
--- ./src/dvr/dvr_rec.c.orig 2017-12-18 09:57:28.000000000 +0100 | ||
+++ ./src/dvr/dvr_rec.c 2018-03-08 17:15:06.479877783 +0100 | ||
@@ -669,7 +669,7 @@ static int | ||
pvr_generate_filename(dvr_entry_t *de, const streaming_start_t *ss) | ||
{ | ||
char filename[PATH_MAX]; | ||
- char path[PATH_MAX]; | ||
+ char path[PATH_MAX + 1]; | ||
char ptmp[PATH_MAX]; | ||
char number[16]; | ||
char tmp[MAX(PATH_MAX, 512)]; | ||
diff -up ./src/epgdb.c.orig ./src/epgdb.c | ||
--- ./src/epgdb.c.orig 2017-12-18 09:57:28.000000000 +0100 | ||
+++ ./src/epgdb.c 2018-03-08 17:15:06.479877783 +0100 | ||
@@ -470,7 +470,7 @@ static int _epg_write_sect ( sbuf_t *sb, | ||
|
||
static void epg_save_tsk_callback ( void *p, int dearmed ) | ||
{ | ||
- char tmppath[PATH_MAX]; | ||
+ char tmppath[PATH_MAX + 4]; | ||
char path[PATH_MAX]; | ||
sbuf_t *sb = p; | ||
size_t size = sb->sb_ptr, orig; | ||
diff -up ./src/epggrab/module/eit.c.orig ./src/epggrab/module/eit.c | ||
--- ./src/epggrab/module/eit.c.orig 2017-12-18 09:57:28.000000000 +0100 | ||
+++ ./src/epggrab/module/eit.c 2018-03-08 17:15:06.480877787 +0100 | ||
@@ -50,8 +50,8 @@ typedef struct eit_private | ||
|
||
typedef struct eit_event | ||
{ | ||
- char uri[257]; | ||
- char suri[257]; | ||
+ char uri[529]; | ||
+ char suri[529]; | ||
|
||
lang_str_t *title; | ||
lang_str_t *summary; | ||
diff -up ./src/imagecache.c.orig ./src/imagecache.c | ||
--- ./src/imagecache.c.orig 2017-12-18 09:57:28.000000000 +0100 | ||
+++ ./src/imagecache.c 2018-03-08 17:15:06.481877791 +0100 | ||
@@ -252,7 +252,7 @@ imagecache_image_fetch ( imagecache_imag | ||
{ | ||
int res = 1, r; | ||
url_t url; | ||
- char tpath[PATH_MAX] = "", path[PATH_MAX]; | ||
+ char tpath[PATH_MAX + 4] = "", path[PATH_MAX]; | ||
tvhpoll_event_t ev; | ||
tvhpoll_t *efd = NULL; | ||
http_client_t *hc = NULL; | ||
diff -up ./src/input/mpegts/dvb_psi.c.orig ./src/input/mpegts/dvb_psi.c | ||
--- ./src/input/mpegts/dvb_psi.c.orig 2017-12-18 09:57:28.000000000 +0100 | ||
+++ ./src/input/mpegts/dvb_psi.c 2018-03-08 17:15:06.482877795 +0100 | ||
@@ -678,7 +678,7 @@ static int | ||
dvb_freesat_add_service | ||
( dvb_bat_id_t *bi, dvb_freesat_region_t *fr, mpegts_service_t *s, uint32_t lcn ) | ||
{ | ||
- char name[96], src[64]; | ||
+ char name[96], src[126]; | ||
if (!fr->bouquet) { | ||
strcpy(name, "???"); | ||
if (idnode_is_instance(&bi->mm->mm_id, &dvb_mux_dvbs_class)) | ||
diff -up ./src/input/mpegts/dvb_support.c.orig ./src/input/mpegts/dvb_support.c | ||
--- ./src/input/mpegts/dvb_support.c.orig 2017-12-18 09:57:28.000000000 +0100 | ||
+++ ./src/input/mpegts/dvb_support.c 2018-03-08 17:15:06.483877799 +0100 | ||
@@ -853,7 +853,7 @@ dvb_str2val(qam); | ||
|
||
const char *dvb_bw2str(int p) | ||
{ | ||
- static char __thread buf[16]; | ||
+ static char __thread buf[17]; | ||
const char *res = dvb_common2str(p); | ||
if (res) | ||
return res; | ||
diff -up ./src/input/mpegts/linuxdvb/linuxdvb_satconf.c.orig ./src/input/mpegts/linuxdvb/linuxdvb_satconf.c | ||
--- ./src/input/mpegts/linuxdvb/linuxdvb_satconf.c.orig 2017-12-18 09:57:28.000000000 +0100 | ||
+++ ./src/input/mpegts/linuxdvb/linuxdvb_satconf.c 2018-03-08 17:15:06.484877803 +0100 | ||
@@ -185,7 +185,7 @@ linuxdvb_satconf_class_orbitalpos_set | ||
linuxdvb_satconf_t *ls = p; | ||
int c = *(int*)linuxdvb_satconf_class_orbitalpos_get(p); | ||
int n = *(int*)v; | ||
- char buf[20]; | ||
+ char buf[22]; | ||
|
||
if (n == c) | ||
return 0; | ||
diff -up ./src/input/mpegts/scanfile.c.orig ./src/input/mpegts/scanfile.c | ||
--- ./src/input/mpegts/scanfile.c.orig 2017-12-18 09:57:28.000000000 +0100 | ||
+++ ./src/input/mpegts/scanfile.c 2018-03-08 17:23:20.200963915 +0100 | ||
@@ -331,7 +331,7 @@ scanfile_create_network | ||
{ | ||
scanfile_region_t *reg = NULL; | ||
scanfile_network_t *net; | ||
- char buf[256], buf2[256], buf3[256], *str; | ||
+ char buf[256], buf2[263], buf3[270], *str; | ||
int opos; | ||
|
||
/* Region */ | ||
diff -up ./src/settings.c.orig ./src/settings.c | ||
--- ./src/settings.c.orig 2017-12-18 09:57:28.000000000 +0100 | ||
+++ ./src/settings.c 2018-03-08 17:15:06.484877803 +0100 | ||
@@ -129,7 +129,7 @@ void | ||
hts_settings_save(htsmsg_t *record, const char *pathfmt, ...) | ||
{ | ||
char path[PATH_MAX]; | ||
- char tmppath[PATH_MAX]; | ||
+ char tmppath[PATH_MAX + 4]; | ||
int fd; | ||
va_list ap; | ||
htsbuf_queue_t hq; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
# Copyright 1999-2018 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
inherit linux-info systemd toolchain-funcs user | ||
|
||
DESCRIPTION="Tvheadend is a TV streaming server and digital video recorder" | ||
HOMEPAGE="https://tvheadend.org/" | ||
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" | ||
|
||
LICENSE="GPL-3" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~arm ~x86" | ||
|
||
IUSE="+capmt +constcw +cwc dbus debug dvbcsa dvben50221 +dvb +ffmpeg hdhomerun +imagecache +inotify iptv libressl satip systemd +timeshift uriparser xmltv zeroconf zlib" | ||
|
||
RDEPEND=" | ||
virtual/libiconv | ||
dbus? ( sys-apps/dbus ) | ||
dvbcsa? ( media-libs/libdvbcsa ) | ||
dvben50221? ( media-tv/linuxtv-dvb-apps ) | ||
ffmpeg? ( media-video/ffmpeg:0/55.57.57 ) | ||
hdhomerun? ( media-libs/libhdhomerun ) | ||
!libressl? ( dev-libs/openssl:= ) | ||
libressl? ( dev-libs/libressl:= ) | ||
uriparser? ( dev-libs/uriparser ) | ||
zeroconf? ( net-dns/avahi ) | ||
zlib? ( sys-libs/zlib )" | ||
|
||
DEPEND=" | ||
${RDEPEND} | ||
sys-devel/gettext | ||
virtual/pkgconfig | ||
dvb? ( virtual/linuxtv-dvb-headers )" | ||
|
||
RDEPEND+=" | ||
dvb? ( media-tv/dtv-scan-tables ) | ||
xmltv? ( media-tv/xmltv )" | ||
|
||
REQUIRED_USE="dvbcsa? ( || ( capmt constcw cwc dvben50221 ) )" | ||
|
||
# Some patches from: | ||
# https://github.com/rpmfusion/tvheadend | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/${PN}-4.0.9-use_system_queue.patch | ||
"${FILESDIR}"/${PN}-4.2.1-hdhomerun.patch | ||
"${FILESDIR}"/${PN}-4.2.2-dtv_scan_tables.patch | ||
"${FILESDIR}"/${PN}-4.2.5-ffmpeg_3.5.patch | ||
"${FILESDIR}"/${PN}-4.2.5-gcc8.patch | ||
) | ||
|
||
DOCS=( README.md ) | ||
|
||
pkg_setup() { | ||
use inotify && | ||
CONFIG_CHECK="~INOTIFY_USER" linux-info_pkg_setup | ||
|
||
enewuser tvheadend -1 -1 /etc/tvheadend video | ||
} | ||
|
||
src_configure() { | ||
CC="$(tc-getCC)" \ | ||
PKG_CONFIG="${CHOST}-pkg-config" \ | ||
econf \ | ||
--disable-bundle \ | ||
--disable-ccache \ | ||
--disable-dvbscan \ | ||
--disable-ffmpeg_static \ | ||
--disable-hdhomerun_static \ | ||
--nowerror \ | ||
$(use_enable capmt) \ | ||
$(use_enable constcw) \ | ||
$(use_enable cwc) \ | ||
$(use_enable dbus dbus_1) \ | ||
$(use_enable debug trace) \ | ||
$(use_enable dvb linuxdvb) \ | ||
$(use_enable dvbcsa) \ | ||
$(use_enable dvben50221) \ | ||
$(use_enable ffmpeg libav) \ | ||
$(use_enable hdhomerun hdhomerun_client) \ | ||
$(use_enable imagecache) \ | ||
$(use_enable inotify) \ | ||
$(use_enable iptv) \ | ||
$(use_enable satip satip_server) \ | ||
$(use_enable satip satip_client) \ | ||
$(use_enable systemd libsystemd_daemon) \ | ||
$(use_enable timeshift) \ | ||
$(use_enable uriparser) \ | ||
$(use_enable zeroconf avahi) \ | ||
$(use_enable zlib) | ||
} | ||
|
||
src_compile() { | ||
emake CC="$(tc-getCC)" | ||
} | ||
|
||
src_install() { | ||
default | ||
|
||
newinitd "${FILESDIR}"/tvheadend.initd tvheadend | ||
newconfd "${FILESDIR}"/tvheadend.confd tvheadend | ||
|
||
use systemd && | ||
systemd_dounit "${FILESDIR}"/tvheadend.service | ||
|
||
dodir /etc/tvheadend | ||
fperms 0700 /etc/tvheadend | ||
fowners tvheadend:video /etc/tvheadend | ||
} | ||
|
||
pkg_postinst() { | ||
elog "The Tvheadend web interface can be reached at:" | ||
elog "http://localhost:9981/" | ||
elog | ||
elog "Make sure that you change the default username" | ||
elog "and password via the Configuration / Access control" | ||
elog "tab in the web interface." | ||
} |