SageTV Community

SageTV Community (http://forums.sagetv.com/forums/index.php)
-   Hardware Support (http://forums.sagetv.com/forums/forumdisplay.php?f=9)
-   -   OpenDCT: An open source digital cable tuner. (http://forums.sagetv.com/forums/showthread.php?t=62774)

KryptoNyte 12-16-2015 06:59 AM

I've had this happen countless times ... whenever there is a halted recording due to some issue with the cable feed or the Prime tuner failure. If Sage can't tune the channel, it seems to be spinning circles on all clients and the server GUI until the tuning failure is resolved. This would eventually be accompanied by a System Message "Recording Missed Due to Capture Device Failure" followed by a (x8) or a (x19) for example. When this occurs, Sage is completely frozen while it's trying to work out the re-tuning and consecutive failure on the re-tune, which can last for 5 to 10 minutes in my experience.

Fuzzy, it's hard to imagine that you've never had a halted recording like the one described above?

From a programming standpoint, I supposed it would be referred to as Sage/Tuner error handling when there is a signal/feed problem from the cable company perhaps?

KryptoNyte 12-16-2015 07:22 AM

I will say that this was a rare (if ever) occurrence with my HDHR clear qam tuners, and has only come about with the advent of the cablecard tuner (on SageDCT). We probably weren't using the cablecard tuners 10+ years ago.

EnterNoEscape 12-16-2015 08:05 AM

Quote:

Originally Posted by KryptoNyte (Post 581783)
I noticed with PrimeNetEncoder that there was some user intervention upon setup to get the encoder kicked off before SageTV on a system bootup. Does this service get itself up and running before Sage on a restart?

At the moment OpenDCT doesn't open up ports until the tuner is actually discovered (usually less than 10 seconds). It would not be a huge effort to just open all of the ports at startup to make things more instant. If the computer goes into and comes out of standby, the instant the network interfaces needed become available, all ports that were available prior to standby open up and block on START requests until the tuners are re-detected. The requests are then executed immediately. For this blocking feature to work correctly, you need to specify in the properties file how many tuning devices are expected.

Quote:

Originally Posted by KryptoNyte (Post 581784)
What's the typical time required to change a channel if someone is channel surfing?

It can take anywhere from 2 to 4 seconds for HD content. SD content takes a little longer because we have a minimum amount of data required before we check if a video and audio stream where detected. We are improving this in the next minor release, but it shouldn't be a deal breaker for anyone. Music Choice is the biggest pain. The channel tuning itself typically takes less than 800ms and normally takes closer to 75ms. The Prime is almost always less than 100ms. FFmpeg starts streaming after about 800ms-1800ms. SageTV then buffers and starts playback. I was showing it to my wife and she was very impressed at the responsiveness.

Quote:

Originally Posted by KryptoNyte (Post 581786)
Scenario 2 clarification: A test for this would be to start watching a program (recorded yesterday) on an extender, schedule another program to start recording in 5 minutes, and pull the plug on the cable. Sage will freeze for 5 to 10 minutes at a time while it tries to tune the new channel (this is with SageDCT). Playback on the extender ceases while Sage tries to get its bearing over the next 5 to 10 minutes.

OpenDCT will mitigate this type of situation in under 5 + DCT reboot time seconds. The stream is polled every 4 seconds for liveliness. If it is not streaming for any reason, OpenDCT will re-tune the channel without stopping FFmpeg. This was needed because some InfiniTV devices would actually reboot at times and SageTV takes too long to react to the halt. OpenDCT in my opinion handles channels that are not streaming a lot better than SageDCT. You will see No Signal instead of the whole interface freezing which I would assume is most people's preference. I used to fear checking if I got a channel or not because I knew I'd be waiting a long time for things to return to normal if the channel didn't stream especially when using FFmpeg remuxing in SageDCT.

Fuzzy 12-16-2015 08:07 AM

It may be some problem in the way sageDCT handles it, if for some reason it stops responding to network encoder requests while the tuning request is trying to resolve - I'm not sure - but at the same time, I am very rarely on any 'server GUI's'.

EnterNoEscape 12-16-2015 08:21 AM

I agree. SageDCT stops responding to anything while it tries to resolve the request, but in the process, it locks up the GUI because SageTV seems to have a very close relationship between clean network communications and GUI responsiveness. This makes sense to a point, but I don't like when things slow down just because a tuner is timing out when SageTV is trying to connect to it; which has nothing to do with me playing a movie for example.

Fuzzy 12-16-2015 08:23 AM

Quote:

Originally Posted by EnterNoEscape (Post 581796)
I agree. SageDCT stops responding to anything while it tries to resolve the request, but in the process, it locks up the GUI because SageTV seems to have a very close relationship between clean network communications and GUI responsiveness. This makes sense to a point, but I don't like when things slow down just because a tuner is timing out when SageTV is trying to connect to it; which has nothing to do with me playing a movie for example.

Has anyone thought to log an issue about the locking UI? There's no technical reason for it to happen, other than a likely oversight by a loop that is not sleeping while it waits for the tuner to respond.

dheinle 12-16-2015 10:56 AM

1 Attachment(s)
Hey there, I've been a long time SageTv user and I am trying to setup a new machine with OpenDCT. I am having a problem getting it running with an InfiniTV Eth6. Here is the console log, I am trying to use tuner 5 and 6 on this system and I keep getting "No Signal" when trying to tune a channel. If there is different way to post issues with OpenDCt let me know. It's been a long time since i've posted to the forums.

And Thank You to everyone that is working on OpenDCT, i'm excited for it.

nyplayer 12-16-2015 11:34 AM

I tested it in my production environment that has 2 NICS and 127.0.0.1 does not work ... If I change to the correct IP it reverts back to 127.0.0.1....


Also it picked up my test machine as a network encoder and had the IP of my test machine not the one in my production PC.


So it appears that it looks for network encoders you have all over the network.


I have Primes hooked up to each NIC .... but the main NIC OpenDCT is picking up as 127.0.0.1 and when I go to tune it gets no signal. I need to be able to generate the correct IP not 127.0.0.1.

It works fine in Primenetencoder with 2 NICS because Josh setup an override in the properties file.

From PrimeEncoder notes.
2. Added an local address override to the properties file. This is to workaround some issues with certain Linux distros, and possibly machines with multiple IP addresses

HelenWeathers 12-16-2015 01:35 PM

I'm getting the No Signal message too and I'm seeing the 127.0.0.1 ip addresses as well.

All my pcs and nas devices are at 10.0.0.xxx ip addresses fyi.

EnterNoEscape 12-16-2015 02:25 PM

Did you try stopping the service and changing the value of sagetv.use_automatic_loopback= to false?

nyplayer 12-16-2015 02:28 PM

Quote:

Originally Posted by EnterNoEscape (Post 581805)
Did you try stopping the service and changing the value of sagetv.use_automatic_loopback= to false?

That is probably my problem too.

No good it keeps changing my IP from 10.0.0.13 to 127.0.0.1 even if I shutdown everything and make the change in sage.properties ... once I start it changes it to 127.0.0.1.

EnterNoEscape 12-16-2015 02:53 PM

Quote:

Originally Posted by dheinle (Post 581799)
Hey there, I've been a long time SageTv user and I am trying to setup a new machine with OpenDCT. I am having a problem getting it running with an InfiniTV Eth6. Here is the console log, I am trying to use tuner 5 and 6 on this system and I keep getting "No Signal" when trying to tune a channel. If there is different way to post issues with OpenDCt let me know. It's been a long time since i've posted to the forums.

It looks like somehow it's not finding the correct network adapter to associate with your InfiniTV Eth 6. I'll need to investigate that one. I may not have an answer today.

What you can do in the mean time that might work out is to stop the service, then change upnp.dct.http_tuning=true to false.

Quote:

Originally Posted by nyplayer (Post 581806)
That is probably my problem too.

I think I misunderstood the issue. I see now that the method used to figure out what network adapter is on a the same subnet is somehow not working correctly and returning 127.0.0.1 which is the IP address for an adapter, but not the right one.

Quote:

Originally Posted by nyplayer (Post 581800)
Also it picked up my test machine as a network encoder and had the IP of my test machine not the one in my production PC.

So it appears that it looks for network encoders you have all over the network.

You can limit what it will actually discover. Check out the readme on GitHub.

nyplayer 12-16-2015 03:11 PM

Quote:

Originally Posted by EnterNoEscape (Post 581809)
It looks like somehow it's not finding the correct network adapter to associate with your InfiniTV Eth 6. I'll need to investigate that one. I may not have an answer today.

What you can do in the mean time that might work out is to stop the service, then change upnp.dct.http_tuning=true to false.



I think I misunderstood the issue. I see now that the method used to figure out what network adapter is on a the same subnet is somehow not working correctly and returning 127.0.0.1 which is the IP address for an adapter, but not the right one.



You can limit what it will actually discover. Check out the readme on GitHub.


Ok thanks I will look at the readme.

dheinle 12-16-2015 03:11 PM

I tried changing upnp.dct.http_tuning=false - still "No Signal"
I tried changing sagetv.use_automatic_loopback=false - still "No Signal"

I do have two NICS on this machine. The on-board nic is not plugged in and is disabled. I have an add-in card that I am using. I keep trying to change the NIC's priority in control panel but it keeps making the on-board nic above the add-in card.

When I get home I will switch the cables around and test with on the on-board nic. Here is the run down of the machine if it helps.

i5-2500k
8gb Ram
Windows 10 64bit
Java 1.7 32bit
SageTV 7.1.9
LAV Filters
Silicon Dust and Ceton drivers installed

nyplayer 12-16-2015 03:20 PM

Quote:

Originally Posted by dheinle (Post 581811)
I tried changing upnp.dct.http_tuning=false - still "No Signal"
I tried changing sagetv.use_automatic_loopback=false - still "No Signal"

I do have two NICS on this machine. The on-board nic is not plugged in and is disabled. I have an add-in card that I am using. I keep trying to change the NIC's priority in control panel but it keeps making the on-board nic above the add-in card.

When I get home I will switch the cables around and test with on the on-board nic. Here is the run down of the machine if it helps.

i5-2500k
8gb Ram
Windows 10 64bit
Java 1.7 32bit
SageTV 7.1.9
LAV Filters
Silicon Dust and Ceton drivers installed

You and I are having the same problem the developers are aware there is a logic problem.

EnterNoEscape 12-16-2015 03:22 PM

I should clarify that the http_tuning is just an InfiniTV thing. You can turn off HDHR tuning (upnp.dct.hdhr_tuning=false), but then you lose the locking. It will use UPnP instead like SageDCT.

HelenWeathers 12-16-2015 03:28 PM

I tried both true and false for sagetv.use_automatic_loopback. My understanding is that if it's running on the sage server pc loopback should be true?

The 127.0.0.1 happens to be the web page address of my plex web interface.

Probably used for lots of things though.

No Sgnal still persists.

I'll give sagetv.device.global.only_devices_csv= a try after recordings finish tonight.

Fuzzy 12-16-2015 04:03 PM

Is there even a reason to bind to specific network addresses? Just let the route stack deal with it.

EnterNoEscape 12-16-2015 04:04 PM

I got a change to open up the code and I'm not sure how it got passed us; probably because we never had it cause an issue, but I was not excluding loopback devices from the subnet matching function. I fixed that and also added a manual override at the "parent" level which basically means you don't need to change the IP address for every single tuner on the same device. The next version which I will try to get out later tonight will have the property sagetv.device.parent.<unique_id>.local_ip_override= that will be pre-populated with the detected value, but can be changed if needed. I suspect with these changes in place it won't be needed though.

EnterNoEscape 12-16-2015 04:06 PM

Quote:

Originally Posted by Fuzzy (Post 581818)
Is there even a reason to bind to specific network addresses? Just let the route stack deal with it.

Yes. There are a few reasons.

1) We need to know that it needs that interface for coming out of standby.
2) When receiving UDP packets, you need to explicitly tell the Prime what IP address and port to send them to. Ditto for InfiniTV when not using the RTSP protocol.


All times are GMT -6. The time now is 01:30 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.