fHDHR / fHDHR_plugin_origin_ceton

Do What The F*ck You Want To Public License
1 stars 4 forks source link

Clean up and multi-device support plans #35

Closed DanAustinGH closed 2 years ago

DanAustinGH commented 2 years ago

Just jotting down thoughts before I start working on code next week- I think now that we have device identification I think we do not need a separate config entry pcie_ip and can use ceton_ip for either device type.

Next week I will look to add the ability to provide a list on these config entries: ceton_ip (ceton_ip=ip1,ip2,ip3) tuners (tuners=4,6,4) This may move to auto-detect, but sill start here

The during init add the ceton_ip and device type for each tuner in tunerstatus and pre-generate the streamurl and store that on tunerstatus as well.

Tweaking functions to use these stored values clean the code up a bit. Multiple PCI devices will require just a bit of extra thought to count cards and create the correct mapping for card to device file, but should not be impossible.

arrmo commented 2 years ago

Sounds great to me - thanks! And just yell if I can do anything at all to help.

DanAustinGH commented 2 years ago

Got bored and did not mind breaking TV this AM. https://github.com/DanAustinGH/fHDHR_plugin_origin_ceton/tree/dev can load and process multiple devices from the config.

The UI will need to be reworked to support multiple devices (tuner list kind of works). I still need to move the streamurl generation into init and test that channels tune. Testing so far is that the code loads without error and builds a proper initial tunerstatus (which does exercise quite a few of the core functions, so hopefully a good start)

arrmo commented 2 years ago

Nice! Can't load it right now, if I break Plex I'll hear it from the wife and daughter ... LMAO!

DanAustinGH commented 2 years ago

Fixed a couple typos and one spot where I swapped source and destination IPs. Confirmed to load, tune and stream. I reworked part of the startstop logic and need to get the PCIe card installed to validate that it works, so I cannot call this ready to merge use yet, but it is close.

A couple install notes- In the config.ini: ceton_ip can now be a comma separated list (order matters, 1st device is used 1st, and so on) device_tuners is new and can be a comma separated list with the number of tuners for each Ceton device (order matters) tuners is used by the core and cannot be a list, so it should be the sum of all device tuners

Example: [ceton] ceton_ip = 192.168.1.99, 192.168.200.1 device_tuners = 6,4 tuners = 10

arrmo commented 2 years ago

Nice! Hold off here I assume, until you get a chance to check it on your PCIe card? BTW, if using direct ... OK to drop the RTP IP (for PCIe) from config.ini? Meaning the 192.168.200.2 (for example).

FYI, I did pull all the XML files from PCIe (and thinking they will be similar for networked) => need to hunt through, to see if the number of tuners is in there somewhere, I can provide the files to you as well, if you want to go through them. It is where I found a bunch of the recently added info.

Thanks!

DanAustinGH commented 2 years ago

I should have basically the same files, so we can compare notes if you see something use full.

I think my changes are OK for the PCIe card, but since I do not have to answer to anyone if it breaks, better to let me test it.

We still need the IP address for communicating with the card. There may be a way to auto discover the RTP IP or to generate it based on the control IP. I will explore both after I get the card. I won't be able to test it, but I may also add code to count the PCIe cards and use that to populate the card number in the device name...

arrmo commented 2 years ago

Sounds good! Will wait for you to poke when I should try it ... 😄

DanAustinGH commented 2 years ago

Turns out it is easy to discover the streaming IP and Port, just another couple of defined getvar queries. Will test on Tuesday.

arrmo commented 2 years ago

Awesome! Lots there, just need to hunt through 😆

DanAustinGH commented 2 years ago

The card showed up a day early. Other than my distro not doing the 'right thing' to enable the IP on the card, it did not take long to get working.

I am currently testing it a single device in parallel with my running system. I can read from the device even after sending a start API call, so I have re-enabled that in the code. Also what we have been calling direct is not what the core considers 'direct' In the core it means read in and pass to the client without processing. We mean read from hardware. So in the UI we should use something other than direct (HW maybe?)

I also need to think about the UI. Not sure if I prefer a set of sub-sub pages for each device to list each ones environment/hw type/etc, or dynamically add columns based on device count (OK, I like the 2nd, but my html/css is far weaker than my Python)

Waiting on the CableCo to finish pairing the CC to the new device. It is oddly working, but that might be temporary...

arrmo commented 2 years ago

Nice! And glad it's up and running so quickly.

I am currently testing it a single device in parallel with my running system. I can read from the device even after sending a start API call, so I have re-enabled that in the code.

NP. Wondering if this is from back when the firmware was old? In any case, no biggie.

Also what we have been calling direct is not what the core considers 'direct' In the core it means read in and pass to the client without processing. We mean read from hardware. So in the UI we should use something other than direct (HW maybe?)

Sure, NP here. Just let me know what to change it to when the time comes ... LOL

DanAustinGH commented 2 years ago

It is one generation back from the latest, so maybe. I was planning to update it BUT the tech from the cable co is claiming the cablecards only work with Tivo's.... (actually it is his tier 2 that is claiming that), so waiting until they get their act together before I make any changes

arrmo commented 2 years ago

Ya, wait till he's done (CableCARD), then upgrade ... 😆. My old CC worked great, no need to even get the cable company involved!

DanAustinGH commented 2 years ago

I suspect that they have a couple levels of authorized. Since the card was on my account and working I could move it from device to device. That will prove handy if either Ceton fails and I need to pull the HDHR out of storage. I recalled that one of the techs had to enter the details without any hyphens and asked the tech to try that. He said the system was auto-adding them, but he humored me and after 80 minutes we finally had a fully paired system. I am going to apply the firmware and do another round of test.

DanAustinGH commented 2 years ago

Not a firmware restriction. I see playing even when reading from the /dev/ceton/ctn91xx_mpeg0_0 device

We can decide if it is RTP or HW based on the streamurl I store in the tunerstatus dict. I just pushed what I have. Need to step away for a bit, but I will likely test tomorrow with both devices. Will set a low tuner limit on the first to confirm that both can be accessed with out need 7+ vlc running

DanAustinGH commented 2 years ago

Closing this one out. Testing looks good and any problems will raise an new issue.