[mythtv-commits] Ticket #12903: Changing channels while watching live tv results in error - Cannot find A/V Decoder (or a black screen)

MythTV noreply at mythtv.org
Sun Nov 27 05:12:27 UTC 2016


#12903: Changing channels while watching live tv results in error - Cannot find A/V
Decoder (or a black screen)
-------------------------------------------------+-------------------------
 Reporter:  William L. DeRieux IV                |          Owner:
  <WilliamDeRieux@…>                             |  jyavenard
     Type:  Bug Report - General                 |         Status:  new
 Priority:  major                                |      Milestone:  0.28.1
Component:  MythTV - Recording                   |        Version:  0.28.0
 Severity:  medium                               |     Resolution:
 Keywords:                                       |  Ticket locked:  0
-------------------------------------------------+-------------------------

Comment (by WilliamDeRieux@…):

 Replying to [comment:4 WilliamDeRieux@…]:
 > Replying to [comment:3 jyavenard]:
 > > Please provide a back trace. See wiki on how to produce a back trace.
 > >
 > > The patch above is no fix.
 >
 > That's the problem...when using gdb to launch mythfrontend the issue
 does not generate backtrace.
 [[BR]]
 The main problem in mythtv/mythtv/libs/libmythtv/tv_rec.cpp ::
 TuningSignalCheck

 Is that the code assumes that all inputs are tunable. [[BR]]
 Composite, S-Video, and similiar inputs cannot be tuned and when they are
 used the TuningSignalCheck is causing recordings to fail -- because it
 returns .


 if (signalMonitor->IsAllGood())
   either sets RecStatus::Failing / RecStatus::Recording
   but is never reached -- because the tuning timeout cannot be set on
 Analog capture cards
   the option is not exposed through the appropriate UI and thus the
 .signalMonitor is always in an error state.

 else if (signalMonitor->IsErrored() || MythDate::current() >
 signalMonitorDeadline)
   returns RecStatus::Failed, and again when non tuned inputs are used this
 is always true.
 else if (curRecording && !reachedRecordingDeadline && MythDate::current()
 > startRecordingDeadline)
    returns  RecStatus::Failing; but is never reached
 else
    returns NULL; but is never reached

 ------
 The point is that this functions always sets RecStatus::Failed for
 composite / svideo and as a result
 causes all recordings to fail.

 What we need here is a way to detect the input type and whether or not is
 can be tuned.
 If the input can be tuned (DVB, CATV tuner, etc) -- then TuningSignalCheck
 can be used as is.
 But for composite/svideo there isn't any point in calling
 TuningSignalCheck and it should just
 set newRecStatus = RecStatus::Recording;

--
Ticket URL: <https://code.mythtv.org/trac/ticket/12903#comment:8>
MythTV <http://www.mythtv.org>
MythTV Media Center


More information about the mythtv-commits mailing list