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)

egeller 11-23-2020 11:34 AM

Quote:

Originally Posted by egeller (Post 628152)
@ENE:
I find that my WMC provided channels are throwing an error in OpenDCT

This morning I remembered that I had a test instance of Sage and OpenDCT on a Windows VM. I got that working, and for now, it provides streaming of WMC to my production SageTV instance on Unraid. The OpenDCT version on the VM is 0.5.29

I then examined the two properties files comparing Windows to Unraid's version for the WMC tuner. I made sure that the WMC tuner configuration was the same for both Windows and Unraid.
I am still getting the following messages from the 0.5.31 version on Unraid:
12:23:13.129 [SageTVRequestHandler-76:GenIP2] ERROR SageTVRequestHandler - SageTV sent: 'BUFFER GenIP2 HDMI|1203977263|1840|16777216|/var/media/tv/GenIP2ontruncheonhome9000HDMI-0.mpgbuf|Great-H.264', Replied: 'ERROR Device Start Failed'
12:23:13.129 [SageTVRequestHandler-76:GenIP2] ERROR SageTVRequestHandler - Unexpected exception while starting buffered network encoder to filename '/var/media/tv/GenIP2ontruncheonhome9000HDMI-0.mpgbuf' => java.lang.NullPointerException
at opendct.capture.GenericHttpCaptureDevice.startEncodingSync(GenericHttpCaptureDevice.java:346)
at opendct.capture.GenericHttpCaptureDevice.startEncoding(GenericHttpCaptureDevice.java:305)
at opendct.sagetv.SageTVRequestHandler.run(SageTVRequestHandler.java:301)
at opendct.util.ThreadPool$1.run(ThreadPool.java:39)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

So for now, I'll keep the Windows version running for WMC, until I can get it working on Unraid again.

EnterNoEscape 11-24-2020 09:55 AM

OpenDCT 0.5.32-Stable
 
https://api.bintray.com/packages/ope...s/download.svg
  • Fixed full pointer exception when producer doesn't exist for HTTP.

EnterNoEscape 11-24-2020 09:59 AM

Quote:

Originally Posted by egeller (Post 628156)
This morning I remembered that I had a test instance of Sage and OpenDCT on a Windows VM. I got that working, and for now, it provides streaming of WMC to my production SageTV instance on Unraid. The OpenDCT version on the VM is 0.5.29

I then examined the two properties files comparing Windows to Unraid's version for the WMC tuner. I made sure that the WMC tuner configuration was the same for both Windows and Unraid.
I am still getting the following messages from the 0.5.31 version on Unraid:
12:23:13.129 [SageTVRequestHandler-76:GenIP2] ERROR SageTVRequestHandler - SageTV sent: 'BUFFER GenIP2 HDMI|1203977263|1840|16777216|/var/media/tv/GenIP2ontruncheonhome9000HDMI-0.mpgbuf|Great-H.264', Replied: 'ERROR Device Start Failed'
12:23:13.129 [SageTVRequestHandler-76:GenIP2] ERROR SageTVRequestHandler - Unexpected exception while starting buffered network encoder to filename '/var/media/tv/GenIP2ontruncheonhome9000HDMI-0.mpgbuf' => java.lang.NullPointerException
at opendct.capture.GenericHttpCaptureDevice.startEncodingSync(GenericHttpCaptureDevice.java:346)
at opendct.capture.GenericHttpCaptureDevice.startEncoding(GenericHttpCaptureDevice.java:305)
at opendct.sagetv.SageTVRequestHandler.run(SageTVRequestHandler.java:301)
at opendct.util.ThreadPool$1.run(ThreadPool.java:39)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

So for now, I'll keep the Windows version running for WMC, until I can get it working on Unraid again.

I created a problem for you with the latest update. I believe all you will need to do is restart the OpenDCT docker container and it will update to this version with the fix in it.

egeller 11-24-2020 08:17 PM

Quote:

Originally Posted by EnterNoEscape (Post 628158)
I created a problem for you with the latest update. I believe all you will need to do is restart the OpenDCT docker container and it will update to this version with the fix in it.

Many thanks. I appreciate it. I will give it a try and get back to you if there are problems.

Edit.
It worked. In the Unraid log I saw the new version download and unpack. After the restart, I tested a channel and it appeared. Thanks again.

gordyp 11-26-2020 06:27 PM

Is Service Able to Honor Previous Install's Account
 
I was wondering if it is possible when updating the OpenDCT software from a previous version, to have the installer check/use the same account as the previous install, rather than defaulting to the SYSTEM account as it currently does. Since it had been awhile since the last update, I had forgotten that I had changed to a local account for the Sage and OpenDCT services, so after installing 0.5.31 last week nothing worked until I realized the issue...

Thanks!

EnterNoEscape 11-27-2020 09:12 AM

Quote:

Originally Posted by gordyp (Post 628170)
I was wondering if it is possible when updating the OpenDCT software from a previous version, to have the installer check/use the same account as the previous install, rather than defaulting to the SYSTEM account as it currently does. Since it had been awhile since the last update, I had forgotten that I had changed to a local account for the Sage and OpenDCT services, so after installing 0.5.31 last week nothing worked until I realized the issue...

Thanks!

I wasn't aware that the installer was resetting the account for the service. The installer is built using the WiX Toolset. It uses the InstallService element to add the service to Windows. The only way around this that I can see is to use a CustomAction instead which in this case feels like the wrong tool for the job. Maybe some kind of juggling with parameters can make it possible with the current implementation, but I'll need to think about it.

gordyp 11-27-2020 10:08 PM

Quote:

Originally Posted by EnterNoEscape (Post 628175)
I wasn't aware that the installer was resetting the account for the service. The installer is built using the WiX Toolset. It uses the InstallService element to add the service to Windows. The only way around this that I can see is to use a CustomAction instead which in this case feels like the wrong tool for the job. Maybe some kind of juggling with parameters can make it possible with the current implementation, but I'll need to think about it.

Maybe a short-term (easier) fix would be to just add a caveat to the installation notes to the effect that if the user is using something other than the SYSTEM account for the Sage service, that the OpenDCT service has to be set to use the same account - I assume most users just use the default SYSTEM account and it is not an issue.

Thanks!

EnterNoEscape 11-29-2020 08:09 AM

Quote:

Originally Posted by gordyp (Post 628186)
Maybe a short-term (easier) fix would be to just add a caveat to the installation notes to the effect that if the user is using something other than the SYSTEM account for the Sage service, that the OpenDCT service has to be set to use the same account - I assume most users just use the default SYSTEM account and it is not an issue.

Thanks!

That's actually not true unless you tell it to write the files directly. By default OpenDCT uses the network encoder upload feature which makes OpenDCT stream directly to SageTV. SageTV is then able to do anything with that stream that it has permission to do. Directly writing to files was originally the default, but more often than not, streaming directly to the SageTV service is the most trouble-free configuration.

gordyp 11-29-2020 09:10 PM

Quote:

Originally Posted by EnterNoEscape (Post 628188)
That's actually not true unless you tell it to write the files directly. By default OpenDCT uses the network encoder upload feature which makes OpenDCT stream directly to SageTV. SageTV is then able to do anything with that stream that it has permission to do. Directly writing to files was originally the default, but more often than not, streaming directly to the SageTV service is the most trouble-free configuration.

Unfortunately enabling those parameters disables subtitling (I knew those params looked familiar!), as @nyplayer advised me last July when I was trying to figure out an issue with subtitles not working (https://forums.sagetv.com/forums/showthread.php?t=66413). Now I just need to figure out what plugins aren't playing nice and lock up Sage when I try to use the Program Guide to tune live TV... :bang:

EnterNoEscape 12-02-2020 08:10 AM

Quote:

Originally Posted by gordyp (Post 628189)
Unfortunately enabling those parameters disables subtitling (I knew those params looked familiar!), as @nyplayer advised me last July when I was trying to figure out an issue with subtitles not working (https://forums.sagetv.com/forums/showthread.php?t=66413). Now I just need to figure out what plugins aren't playing nice and lock up Sage when I try to use the Program Guide to tune live TV... :bang:

Right, most situations. That's probably the only exception, but I don't want false guidance out there asking people to change something that doesn't need to be changed. It might actually be even better to see if there's a way to copy the SageTV service credentials.

waylo 12-09-2020 02:01 PM

Quote:

Originally Posted by EnterNoEscape (Post 628188)
That's actually not true unless you tell it to write the files directly. By default OpenDCT uses the network encoder upload feature which makes OpenDCT stream directly to SageTV. SageTV is then able to do anything with that stream that it has permission to do. Directly writing to files was originally the default, but more often than not, streaming directly to the SageTV service is the most trouble-free configuration.

Could you comment more on the differences, pros/cons of network encoding vs direct writing? I've been refreshing my knowledge of SageTV with my nearly finished SageTV x64 server to replace my old one, and going through the .properties files, I end up asking, A LOT, "Huh, wonder why I had this set this way 5-8 years ago?" :confused:

(I guess I never had any trouble with direct writing, so I've never asked about why one is superior to the other).

EDIT: Also can you confirm Java 8 is now required for OpenDCT? I think I saw a comment you wrote on github.

EnterNoEscape 12-13-2020 09:25 PM

Quote:

Originally Posted by waylo (Post 628266)
Could you comment more on the differences, pros/cons of network encoding vs direct writing? I've been refreshing my knowledge of SageTV with my nearly finished SageTV x64 server to replace my old one, and going through the .properties files, I end up asking, A LOT, "Huh, wonder why I had this set this way 5-8 years ago?" :confused:

(I guess I never had any trouble with direct writing, so I've never asked about why one is superior to the other).

EDIT: Also can you confirm Java 8 is now required for OpenDCT? I think I saw a comment you wrote on github.

Direct writing cuts out SageTV as a middleman. The downsides are the network encoder needs to have permission to to write to the destination and access the recording file via the exact same path. You can write anything other than the video stream too (really only an issue if you want to extract captions).

Writing to the SageTV media server gives the network encoder the ability to write anywhere SageTV has granted it permission.

Java 8 is what I build OpenDCT on. You might get by with Java 7, but I really wouldn't chance it. Newer versions should be fine too.

guho 12-17-2020 09:13 PM

Pooling
 
At the moment I only have tuner 2 of my HDHomeRun Prime available as an OpenDCT tuner in SageTV. The other two (0 & 1) I leave to be used by the HDHomeRun app.

Now if I switch to pooled tuning (pool.enabled=true), would the tuners still be labeled DCT-HDHomeRun Prime Tuner 1310C48A-n, with 0<=n<=2? Or would they be named after the pool they are in? At the moment there seems to be one pool by default named dct.

Normally, SageTV decides in advance which tuners to use for upcoming recordings. So if SageTV chooses DCT-HDHomeRun Prime Tuner 1310C48A-2 and it turns out busy at recording time, how can the pooling make it go to DCT-HDHomeRun Prime Tuner 1310C48A-0 if available? Each tuner has it own network port number so if SageTV starts talking to the network encoder associated with DCT-HDHomeRun Prime Tuner 1310C48A-2, how does the pooling override that? I am sure it has been discussed in this thread so sorry if this turns out to be a duplicate question.

The reason I need to know is that I missed an important recording because the tuner was in use by the HDHomeRun Windows Store app. As an immediate fix, I enabled always_force_external_unlock, but I would like to understand OpenDCT pooling a lot better. Thanks in advance!

AlphaCrew 12-20-2020 07:52 AM

Quote:

Originally Posted by AlphaCrew (Post 627381)
It's like beating a dead horse, if it's broke, break it some more.

So my system has been 'down' since the 17th and the more I tired to fix it; the more broken it became. I got to the point of loosing all functionality with all my tuning devices.. go figure...

I decided to update the BIOS (stupid is, stupid does), as I look back this may have been a blessing but it felt like a curse at time.

Thankfully my back up system (Arcronis) had made a full backup right before things just got plain silly.

I decided to recover to the point when I only had CCI 00 and 02 not working. Since the bios was updated after that point in time, I still had to deal with putting my network back in place, while I was at it, I decided to update the network adapters drivers. :thumb:

A much longer story, shorter.... in a long shot I tuned the Discovery channel and to my surprise it worked. I then started 6 recordings :confused: and everything worked.. I have NO idea what the problem was or what actually "fixed" it. At this point I'm just hoping it stays working.. :bang:

When I said, "Feel like I'm about to poke an angry bear with this move..." I had no idea how angry that bear would turn out to be. Next time someone needs to kick me in the teeth before I start.

Well, here we go again.. This is what happened this time...

1) I changed my Fios TV Plan to "Your TV".
2) I was able to tune all of my 5 chosen channel without issue.
3) I decided I wanted to "clean up" the channels no longer subbed to.
4) I thought the quickest way to do this was to perform a channel scan. (This was a mistake) it returned "no tunable channels found".

From this point on, I'm now in the exact same place I was a few months ago with "No Signal".

Recovering the system drive to the point before I scanned the channels makes everything work again.

So why does making any changes to OpenDCT or Sage as it pertains to Ceton card breaks everything, and no amount of sanitizing and re-installing makes it work again?

EnterNoEscape 12-22-2020 10:37 AM

Quote:

Originally Posted by guho (Post 628337)
At the moment I only have tuner 2 of my HDHomeRun Prime available as an OpenDCT tuner in SageTV. The other two (0 & 1) I leave to be used by the HDHomeRun app.

Now if I switch to pooled tuning (pool.enabled=true), would the tuners still be labeled DCT-HDHomeRun Prime Tuner 1310C48A-n, with 0<=n<=2? Or would they be named after the pool they are in? At the moment there seems to be one pool by default named dct.

Normally, SageTV decides in advance which tuners to use for upcoming recordings. So if SageTV chooses DCT-HDHomeRun Prime Tuner 1310C48A-2 and it turns out busy at recording time, how can the pooling make it go to DCT-HDHomeRun Prime Tuner 1310C48A-0 if available? Each tuner has it own network port number so if SageTV starts talking to the network encoder associated with DCT-HDHomeRun Prime Tuner 1310C48A-2, how does the pooling override that? I am sure it has been discussed in this thread so sorry if this turns out to be a duplicate question.

The reason I need to know is that I missed an important recording because the tuner was in use by the HDHomeRun Windows Store app. As an immediate fix, I enabled always_force_external_unlock, but I would like to understand OpenDCT pooling a lot better. Thanks in advance!

Pooling will not change the names of the tuners in SageTV. You can enable and disable it without any changes in SageTV.

EnterNoEscape 12-22-2020 10:42 AM

Quote:

Originally Posted by AlphaCrew (Post 628358)
Well, here we go again.. This is what happened this time...

1) I changed my Fios TV Plan to "Your TV".
2) I was able to tune all of my 5 chosen channel without issue.
3) I decided I wanted to "clean up" the channels no longer subbed to.
4) I thought the quickest way to do this was to perform a channel scan. (This was a mistake) it returned "no tunable channels found".

From this point on, I'm now in the exact same place I was a few months ago with "No Signal".

Recovering the system drive to the point before I scanned the channels makes everything work again.

So why does making any changes to OpenDCT or Sage as it pertains to Ceton card breaks everything, and no amount of sanitizing and re-installing makes it work again?

The channel scan doesn't always work right and I never spent the time working out all the issues. Fuzzy helped a little with getting the responses to match what SageTV expects, but it's still not perfect. I actually don't use the channel scan right now because I know it can sometimes make things worse. I have a harder time decoding what SageTV is actual doing because the code is in an STV (not Java).

I use 2 Ceton tuners in production and 1 in testing, so I'm not completely sure why you specifically keep running into issues here. You could provide a log post channel scanning and I might be able to at least call out what is going wrong.

AlphaCrew 12-22-2020 11:48 AM

Quote:

Originally Posted by EnterNoEscape (Post 628393)
The channel scan doesn't always work right and I never spent the time working out all the issues. Fuzzy helped a little with getting the responses to match what SageTV expects, but it's still not perfect. I actually don't use the channel scan right now because I know it can sometimes make things worse. I have a harder time decoding what SageTV is actual doing because the code is in an STV (not Java).

I use 2 Ceton tuners in production and 1 in testing, so I'm not completely sure why you specifically keep running into issues here. You could provide a log post channel scanning and I might be able to at least call out what is going wrong.

Thanks for your response. At this point, I don't want to recover the partition again so I'm going to leave well enough alone for now.. :D

civerson4 01-08-2021 05:30 PM

OPENDCT Help....

Long time Sage user...have had OPENDCT running perfectly for years. Issue last night.

OpenDCT will not tune anything but local Channels (Cox in Orange County). All other channels say "no signal"

But, the HD Homerun app will tune everything.

I tried rescanning the channels in HD Homerun set up. Have stopped and started OPENDCT, re-ran the console program and it finds all the tuners.

Every once in a while, I get black screen with "COPY ONCE" on the screen. Did Cox just potentially insert the copy protection flag in all but local channels? Does the HDHomerun app allow you to watch copy protected channels?

I can uninstall and reinstall OpenDCT, but wondering if anyone has any advice or a workaround?

Cox is supposed to send a tech tomorrow, but not super optimistic a tech will be able to solve a cable card issue inside sage when the HD Homerun app is working.

Any help is much, much appreciated. Thanks in advance.

KeithAbbott 01-08-2021 05:47 PM

Quote:

Originally Posted by civerson4 (Post 628683)
OPENDCT Help....

Long time Sage user...have had OPENDCT running perfectly for years. Issue last night.

OpenDCT will not tune anything but local Channels (Cox in Orange County). All other channels say "no signal"

But, the HD Homerun app will tune everything.

I tried rescanning the channels in HD Homerun set up. Have stopped and started OPENDCT, re-ran the console program and it finds all the tuners.

Every once in a while, I get black screen with "COPY ONCE" on the screen. Did Cox just potentially insert the copy protection flag in all but local channels? Does the HDHomerun app allow you to watch copy protected channels?

I can uninstall and reinstall OpenDCT, but wondering if anyone has any advice or a workaround?

Cox is supposed to send a tech tomorrow, but not super optimistic a tech will be able to solve a cable card issue inside sage when the HD Homerun app is working.

Any help is much, much appreciated. Thanks in advance.

If you go to the channel lineup in my.hdhomerun.com, it will say DRM to the right of any channels that are copy protected. You will likely be able to watch it in the HDHomeRun app, but you will probably not be able to watch it in SageTV.

civerson4 01-08-2021 05:51 PM

Thanks. Yes, shows almost every channel with DRM. Crap. That might kill my ability to use Sage.


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

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