[mythtv-commits] Ticket #7144: Multirec with HDHR closes video stream when recordings overlap

MythTV mythtv at cvs.mythtv.org
Fri Sep 25 04:49:28 UTC 2009


#7144: Multirec with HDHR closes video stream when recordings overlap
------------------------------------+---------------------------------------
 Reporter:  david.madsen at gmail.com  |       Owner:  danielk
     Type:  defect                  |      Status:  new    
 Priority:  minor                   |   Milestone:  unknown
Component:  MythTV - Recording      |     Version:  head   
 Severity:  medium                  |     Mlocked:  0      
------------------------------------+---------------------------------------
 I recently started utilizing the multirec features of the HDHR and have
 run into a few issues when recordings actually overlap on the virtual
 tuners assigned to the HDHR.

 The problem occurs when one of the recordings ends while other recordings
 are still active on other virtual tuners.  It appears that when the
 recording ends, the EnterPowerSavingMode function is called for the stream
 handler class.  There is a check here to stop this task call from turning
 off the tuner while other recordings are active, but from what I can tell
 the function call is not accomplishing what is intended.  What ended up
 happening for me was that there is an overlap of a couple of minutes
 between the two programs.  The 2nd program started out recording properly
 for the time when both recordings were active, but once the first
 recording ended, the 2nd recording stopped receiving data as well.

 bool HDHRStreamHandler::EnterPowerSavingMode(void)
 {
     if (!hdhomerun_device_get_video_sock(_hdhomerun_device))
     {
         VERBOSE(VB_RECORD, LOC + "Ignoring request - video streaming
 active");
         return false;
     }
     else
     {
         return TuneChannel("none");
     }
 }

 After looking through the HDHR library functions, it appears that this
 hdhomerun_device_get_video_sock() function will return a pointer to the
 internal video_socket structure, and will actually create a new video
 socket if there isn't one allocated.  This would result in the task almost
 always (except in the case of an error building the socket) return a non
 null value.  This in turn will force the tuner to tune to "none" which
 shuts down the stream to any other listeners.

 I haven't had a chance to look for a solution to this yet, I just thought
 I'd post this here for anyone else who may be more familiar with the
 libraries and code.

 I have attached the relevant section of the backend log when the
 recordings overlapped. I've attempted to grep out the useful info, but I
 can post the entire log if there's anything else that would be helpful in
 verifying this.

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/7144>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list