Beta testing next Apple TV release

Yes, the DVR is taking multiple tuners. I miss the sharing feature that was working last when I was transcoding.

Also still not working for me. Three Extends, all set to none (no trnscoding). DVR and AppleTV list them in same priority order.

A new alpha DVR build is available with a major rewrite of the sharing engine, with optimizations to improve memory and CPU usage while tuners are being shared.

This build also has the fix for EXTEND sharing when clients are set to no transcoding.

curl -XPUT http://127.0.0.1:8089/updater/check/2017.04.12.0146

(2 Extends, no transcoding)i just installed it and started a recording then went to the app (beta) and chose the channel and selected “Watch Now”. took 2 tuners:
Tuner 0 Channel 593.000 MHz
Tuner 1 Channel 593.000 MHz

switching back to heavy fixes sharing.

1 Like

If we install will the future “non-alpha” DVR builds overwrite or will it only pickup alpha builds?

It just picks up with the next build. That works fine.

So we would lose the alpha code with the update?

I should add that it worked fine if I was watching the channel when the recording started.

This build (2017.04.12.0146) is having issues with panics and high cpu load on a 2014 MacMini

OS: darwin Macmini7,110.12.4 (kernel: 16.5.0)
CPU: 2 cores / Intel® Core™ i7-4578U CPU @ 3.00GHz

load averages: 6.20 6.51 6.51

RAM: 17.18 GB 70.2% free

No items recording/transcoding:

Log shows:

2017/04/12 13:29:30 [DVR] Recording for job 1492028970-ch709 from 13175861 ch709 into "TV/Hot Bench/2017-04-12-1329 Hot Bench 2016-11-04 S03E62 The Phantom Driver Defense Babysitter Payback.mpg" for 31m29.927764494s
panic: runtime error: index out of range

goroutine 33 [running]:
github.com/tmm1/bufit.(*readerHeap).Swap(0xc420a21768, 0x1, 0x0)
	:8 +0x10c
container/heap.Remove(0x4a90580, 0xc420a21768, 0x1, 0x405f335, 0xc42093bf10)
	/usr/local/Cellar/go/1.8/libexec/src/container/heap/heap.go:74 +0x9c
github.com/tmm1/bufit.(*Buffer).drop(0xc420a21740, 0xc42093bf40)
	/Users/fancybox/source/channels-server/.go/src/github.com/tmm1/bufit/bufit.go:100 +0x85
github.com/tmm1/bufit.(*reader).Close(0xc42093bf40, 0xc4204eeb00, 0x47a0570)
	/Users/fancybox/source/channels-server/.go/src/github.com/tmm1/bufit/heap.go:66 +0x5c
_/Users/fancybox/source/channels-server/hdhr.(*Stream).Close(0xc42004a390, 0x0, 0x0)
	/Users/fancybox/source/channels-server/hdhr/stream.go:286 +0x44
_/Users/fancybox/source/channels-server/dvr.(*Job).Run(0xc420840000, 0x0, 0x0)
	/Users/fancybox/source/channels-server/dvr/job.go:346 +0x11c1
_/Users/fancybox/source/channels-server/dvr.(*Recorder).RunRecorder.func1(0xc42007ab00, 0xc420840000)
	/Users/fancybox/source/channels-server/dvr/recorder.go:799 +0x74
created by _/Users/fancybox/source/channels-server/dvr.(*Recorder).RunRecorder
	/Users/fancybox/source/channels-server/dvr/recorder.go:837 +0x545
2017/04/12 13:31:01 [SYS] Starting Channels DVR v2017.04.12.0146 (darwin-x86_64) in /Users/syousif/channels-dvr/data
2017/04/12 13:31:02 [HDR] Found 5 devices
2017/04/12 13:31:03 [SYS] Started HTTP Server
2017/04/12 13:31:04 [DVR] Recording engine started in /Volumes/TeddyR Whale/DVR
2017/04/12 13:31:04 [SYS] Bonjour service running for dvr-teddyrmacmini.local. [192.168.1.222 25.17.107.244]
2017/04/12 13:31:04 [DVR] Deleting expired job 1492027170-ch709
2017/04/12 13:31:04 [DVR] Starting job 1492028970-ch709 Hot Bench on ch=[709]
2017/04/12 13:31:04 [DVR] Waiting 28m25.881713743s until next job 1492030770-ch709
2017/04/12 13:31:04 [NAT] Successfully mapped port 8089 using natpmp
2017/04/12 13:31:04 [DVR] Processing file-646: TV/Hot Bench/2017-04-12-1259 Hot Bench 2016-11-18 S03E81 Fashion Week PR Fail Worst Roommate Match Ever.mpg
2017/04/12 13:31:04 [DVR] Running commercial detection on file 646 (TV/Hot Bench/2017-04-12-1259 Hot Bench 2016-11-18 S03E81 Fashion Week PR Fail Worst Roommate Match Ever.mpg)
2017/04/12 13:31:04 [DVR] Recording for job 1492028970-ch709 from 131B3AAC ch709 into "TV/Hot Bench/2017-04-12-1329 Hot Bench 2016-11-04 S03E62 The Phantom Driver Defense Babysitter Payback.mpg" for 29m55.881463904s
2017/04/12 13:31:14 [IDX] Pruned 181 expired airings from USA-CA04430-X in 242.699601ms.
2017/04/12 13:34:17 [DVR] Commercial detection finished with 0 markers.
2017/04/12 13:34:17 [SYS] Created database snapshot: backup-20170412.133417
2017/04/12 13:34:17 [SYS] Removing old backup backup-20170403.042535
2017/04/12 13:59:30 [DVR] Starting job 1492030770-ch709 Judge Mathis on ch=[709]
2017/04/12 13:59:30 [DVR] Recording for job 1492030770-ch709 from 13175861 ch709 into "TV/Judge Mathis/2017-04-12-1359 Judge Mathis 2017-04-12 S18E119.mpg" for 1h1m29.931110018s
panic: runtime error: index out of range

goroutine 85 [running]:
github.com/tmm1/bufit.(*readerHeap).Swap(0xc4206b0a48, 0x1, 0x0)
	:8 +0x10c
container/heap.Remove(0x4a90580, 0xc4206b0a48, 0x1, 0x405f335, 0xc420671bd0)
	/usr/local/Cellar/go/1.8/libexec/src/container/heap/heap.go:74 +0x9c
github.com/tmm1/bufit.(*Buffer).drop(0xc4206b0a20, 0xc420671c00)
	/Users/fancybox/source/channels-server/.go/src/github.com/tmm1/bufit/bufit.go:100 +0x85
github.com/tmm1/bufit.(*reader).Close(0xc420671c00, 0xc4207f9800, 0x47a0570)
	/Users/fancybox/source/channels-server/.go/src/github.com/tmm1/bufit/heap.go:66 +0x5c
_/Users/fancybox/source/channels-server/hdhr.(*Stream).Close(0xc4206d74d0, 0x0, 0x0)
	/Users/fancybox/source/channels-server/hdhr/stream.go:286 +0x44
_/Users/fancybox/source/channels-server/dvr.(*Job).Run(0xc420740000, 0x0, 0x0)
	/Users/fancybox/source/channels-server/dvr/job.go:346 +0x11c1
_/Users/fancybox/source/channels-server/dvr.(*Recorder).RunRecorder.func1(0xc4200834a0, 0xc420740000)
	/Users/fancybox/source/channels-server/dvr/recorder.go:799 +0x74
created by _/Users/fancybox/source/channels-server/dvr.(*Recorder).RunRecorder
	/Users/fancybox/source/channels-server/dvr/recorder.go:837 +0x545
2017/04/12 14:01:00 [SYS] Starting Channels DVR v2017.04.12.0146 (darwin-x86_64) in /Users/syousif/channels-dvr/data
2017/04/12 14:01:01 [HDR] Found 5 devices
2017/04/12 14:01:02 [SYS] Started HTTP Server
2017/04/12 14:01:03 [DVR] Recording engine started in /Volumes/TeddyR Whale/DVR
2017/04/12 14:01:03 [SYS] Bonjour service running for dvr-teddyrmacmini.local. [192.168.1.222 25.17.107.244]
2017/04/12 14:01:03 [DVR] Deleting expired job 1492028970-ch709
2017/04/12 14:01:03 [DVR] Starting job 1492030770-ch709 Judge Mathis on ch=[709]
2017/04/12 14:01:03 [DVR] Waiting 2h58m26.598505517s until next job 1492041570-40
2017/04/12 14:01:03 [NAT] Successfully mapped port 8089 using natpmp
2017/04/12 14:01:03 [DVR] Processing file-647: TV/Hot Bench/2017-04-12-1329 Hot Bench 2016-11-04 S03E62 The Phantom Driver Defense Babysitter Payback.mpg
2017/04/12 14:01:03 [DVR] Running commercial detection on file 647 (TV/Hot Bench/2017-04-12-1329 Hot Bench 2016-11-04 S03E62 The Phantom Driver Defense Babysitter Payback.mpg)
2017/04/12 14:01:04 [DVR] Recording for job 1492030770-ch709 from 131B3AAC ch709 into "TV/Judge Mathis/2017-04-12-1359 Judge Mathis 2017-04-12 S18E119.mpg" for 59m56.597591937s
2017/04/12 14:01:13 [IDX] Pruned 131 expired airings from USA-CA04430-X in 141.745635ms.
2017/04/12 14:04:19 [DVR] Commercial detection finished with 10 markers.
2017/04/12 14:04:19 [SYS] Created database snapshot: backup-20170412.140419
2017/04/12 14:04:19 [SYS] Removing old backup backup-20170403.230729
panic: runtime error: index out of range

goroutine 49 [running]:
github.com/tmm1/bufit.(*readerHeap).Swap(0xc420895528, 0x0, 0xffffffffffffffff)
	:8 +0x10c
container/heap.Remove(0x4a90580, 0xc420895528, 0x0, 0x405f335, 0xc420890ad0)
	/usr/local/Cellar/go/1.8/libexec/src/container/heap/heap.go:74 +0x9c
github.com/tmm1/bufit.(*Buffer).drop(0xc420895500, 0xc420890b00)
	/Users/fancybox/source/channels-server/.go/src/github.com/tmm1/bufit/bufit.go:100 +0x85
github.com/tmm1/bufit.(*reader).Close(0xc420890b00, 0xc4207f1800, 0x47a0570)
	/Users/fancybox/source/channels-server/.go/src/github.com/tmm1/bufit/heap.go:66 +0x5c
_/Users/fancybox/source/channels-server/hdhr.(*Stream).Close(0xc4204a5a10, 0x0, 0x0)
	/Users/fancybox/source/channels-server/hdhr/stream.go:286 +0x44
_/Users/fancybox/source/channels-server/dvr.(*Job).Run(0xc4207d01e0, 0x0, 0x0)
	/Users/fancybox/source/channels-server/dvr/job.go:346 +0x11c1
_/Users/fancybox/source/channels-server/dvr.(*Recorder).RunRecorder.func1(0xc420083080, 0xc4207d01e0)
	/Users/fancybox/source/channels-server/dvr/recorder.go:799 +0x74
created by _/Users/fancybox/source/channels-server/dvr.(*Recorder).RunRecorder
	/Users/fancybox/source/channels-server/dvr/recorder.go:837 +0x545
2017/04/12 15:01:00 [SYS] Starting Channels DVR v2017.04.12.0146 (darwin-x86_64) in /Users/syousif/channels-dvr/data
2017/04/12 15:01:02 [HDR] Found 5 devices
2017/04/12 15:01:03 [SYS] Started HTTP Server
2017/04/12 15:01:03 [DVR] Recording engine started in /Volumes/TeddyR Whale/DVR
2017/04/12 15:01:03 [SYS] Bonjour service running for dvr-teddyrmacmini.local. [192.168.1.222 25.17.107.244]
2017/04/12 15:01:03 [DVR] Deleting expired job 1492030770-ch709
2017/04/12 15:01:03 [NAT] Successfully mapped port 8089 using natpmp
2017/04/12 15:01:03 [DVR] Waiting 1h58m26.341512962s until next job 1492041570-40
2017/04/12 15:01:03 [DVR] Processing file-648: TV/Judge Mathis/2017-04-12-1359 Judge Mathis 2017-04-12 S18E119.mpg
2017/04/12 15:01:04 [DVR] Running commercial detection on file 648 (TV/Judge Mathis/2017-04-12-1359 Judge Mathis 2017-04-12 S18E119.mpg)
2017/04/12 15:01:14 [IDX] Pruned 216 expired airings from USA-CA04430-X in 218.87278ms.
2017/04/12 15:05:28 [DVR] Commercial detection finished with 14 markers.
2017/04/12 15:05:28 [SYS] Created database snapshot: backup-20170412.150528
2017/04/12 15:05:28 [SYS] Removing old backup backup-20170404.184402
2017/04/12 16:01:03 [NAT] Successfully mapped port 8089 using natpmp

Upgrade to 2017.04.12.2130 for a fix.

1 Like

There’s a new pre-release v2017.04.13.0150 build available now with a fix for the panic bug, and for the EXTEND transcoding tuner-sharing bug.

I have installed 2017.04.13.0150

If I start a channel from the AppleTV latest beta (4.11.105) and the same channel via the DVR web page, it’s still using two tuners on my Extend (transcoding set to none). This is true no matter which I start first.

Note: the HDHomerun tuner status shows the clients for both tuners are the same DVR IP address.

Also note, if I start the same channel in two DVR web pages, the tuner IS SHARED. I cannot try the same with two AppleTVs as I only have one.

The web player is hard-coded to use the mobile transcoding profile with the EXTEND, so sharing would only kick in if the ATV was also using mobile.

The hard-coded value is from the earliest version of the player… perhaps it makes sense to use the same setting as recordings do now?

I’m worried that making this change now would break remote viewing for anyone with an Extend who doesn’t want his recordings to be transcoded and has limited up bandwidth.

I’d prefer that you wait until the iOS app supports the DVR. Presumably the transcoding selected in the iOS app would not affect recording.

Both recordings and live stream should be transcoded by the dvr when the web player is used (using whatever resolution and bitrate that was selected by the user on the settings page for the web-ui). The extend transcode is not nessessary for streaming and so the web-ui streaming should recieve the same video from the HDHR as the recordings do.

I only use the web remote for watching internally on non-apple clients, since the green apps don’t allow static IPs, so I would like to see variable rate. I also have plenty of bandwidth for it. My expectation is that iOS will be my remote viewer, will handle the oauth better and have all the controls that I don’t have now. I only use it in a pinch when remote.

@tmm1 I was very confused with my previous reply to this. I forgot that the web player is a separate setting!

Yes, please do as you suggest and have the Extend use the record settings for tuning requests by the web player.

So I recently reverted back to a single HDHomeRun Prime. In following this thread, has the sharing feature been built into the Apple Store versions of the ATV client and the current DVR client (QNAP 2017.04.28). If so, when the DVR and Apple TV client are both watching the same channel, how many tuners should be utilized? I’m seeing 2 tuners occupied, both with the same channel streaming. Any thoughts on this would be appreciated.

The tuner sharing is built into the latest DVR, but still only available in the beta tvOS app.