Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#9669 closed Patch - Bug Fix (Invalid)

External Channel Change Event Doesn't Fire for DEMO/MPEGTS Tuner.

Reported by: raymondboettcher@… Owned by: danielk
Priority: minor Milestone: unknown
Component: MythTV - Recording Version: 0.24-fixes
Severity: medium Keywords:
Cc: Ticket locked: yes


I have a small problem and can't determine if this is just a problem with my MythTV installation or the event wasn't configured for the DEMO Tuner. I created 3 DEMO Tuners and allocated them to different FIFO's in the /tmp folder. I have 3 FFMPEG instances set to stream to those FIFO's as they are called upon. I'm writing an intermetiate program that will pass the data from the specific feed to the FIFO Device. However, when I change channels it doesn't call the external channel change event. When I have several DEMO Channels setup to one lineup it keeps the existing Tuner (which is fine) and shows the same feed regardless of channel tuned too. I understand that the driver is VERY simple and this normally would be the desired output. However, with the External Channel Change Command, I could modify this behavior.

I would assume that the channel changing event is part of the Myth Code itself and not the responsability of the tuner driver in MythTV. I can run mythbackend -v channel to see the channel change taking place. However, I'm still studying to code to get a better understand of what is going on.

I'm running the latested Development code (pre-0.25) because of some problems with 0.24 when handling Live TV on Slackware-64. This update fixed the Buffering timeout problem when accessing a Live TV or Prerecorded Feed.

I also get a few "LoadFromScheduler?(): Error, called from backend." when changing channels and wasn't sure how to go about displaying the information of those errors in order to determine if that is the attempt to run the script. I ran it from a shell and it did exactly what I expected. I even wrote a small C++ program for it to run simply to dump the arguements passed by MythTV into a file in /tmp.

Attachments (2)

Mythbackend.txt (1.1 KB) - added by raymondboettcher@… 10 years ago.
Channel Change event from Mythbackend.
argsout.cpp (309 bytes) - added by raymondboettcher@… 10 years ago.
Channel Change Script Designed Simply to Log Arguements from Mythtv.

Download all attachments as: .zip

Change History (7)

Changed 10 years ago by raymondboettcher@…

Attachment: Mythbackend.txt added

Channel Change event from Mythbackend.

Changed 10 years ago by raymondboettcher@…

Attachment: argsout.cpp added

Channel Change Script Designed Simply to Log Arguements from Mythtv.

comment:1 Changed 10 years ago by raymondboettcher@…

The original idea was to handle this event by Streaming to the Network Tuner using FFMPEG on RTP or UDP. The biggest problem is I get the LOCK on the channel but no feed ever comes up. Also, since I don't want to leave FFMPEG running indefinately and prefer a more On-Demand approach, so I decided to use FIFO's. My program can monitor the FIFO with Select() and determine when to kick off the feed when MythTV opens the FIFO. Also when the Tuner is closed the FIFO is closed and that is very easily monitored from inside C++ as well. I can simply fork() with ffmpeg as the execv() replacing the thread and already have IO Redirection set to the parent then the parent will output to the FIFO that MythTV is monitoring. This method would allow me to feed a Unavailable.mpg file through the FIFO if the feed doesn't start in FFMpeg which is generally a mmsh:// feed or rtp:// feed recoded as MPEG with correct aspect options, resolution, etc as needed. I can't seem to make this work for some reason with the Network Tuner. I did try this with VLC as well.

comment:2 Changed 10 years ago by danielk

Resolution: Invalid
Status: newclosed

Only recorders where we have contemplated the need for an external channel change script call such a script; the functionality is implemented in the Channel class. I believe you can use Myth System Events which are fired for all recording events for what you want to do. Please use the mailing lists for further discussion.

comment:3 Changed 10 years ago by raymondboettcher@…

Interesting... As I am jumping from 0.20 to Pre-0.25, some of this functionality didn't exist then. However, if the option isn't going to be implemented, the option in mythtv-setup for the DEMO/MPEG Tuner should be removed to prevent others from falsely thinking they can use it. Thank you for a moment of your time though, this helps out a lot.

comment:4 Changed 10 years ago by ligverd@…

I also wanted to do this, and discovered that the demo recorder does not call an external script to change channels. : ( Also, mythtv does not read from the fifo. How do you implement the transfer of the external flow in the fifo and then in mythtv? PS Contact me if you have this theme interisuet. ligverd@…

comment:5 Changed 10 years ago by robertm

Ticket locked: set

The Demo tuner is just that, a demonstration of how MythTV works, or rather how it would work once you added the required hardware. It's not a means of jury rigging your setup to do anything besides be a demo.

Locking ticket since the request multiple comments ago to use the mailing list has been ignored.

Note: See TracTickets for help on using tickets.