[mythtv] Re: Help!

John Patrick Poet john at BlueSkyTours.com
Wed Dec 1 01:31:02 UTC 2004


Daniel Thor Kristjansson wrote:

>On Tue, 30 Nov 2004, John Patrick Poet wrote:
>]Hi Daniel,
>]
>]All of a sudden, I cannot record my CBS channel.  This has nothing to do with
>]your hdtvrecorder patch.  I can't record that channel with a pure CVS install
>]either.  I am hoping you can help me figure out why.  I have attached the
>]output from "mythbackend -v record", with your v32 patch in place.
>]
>]I replace the assert in MPEGStreamData::CreatePMT with:
>]
>]#if 0
>]   assert(pcrpidIndex>=0); // there must be some reference stream
>]#else
>]   if (pcrpidIndex < 0)
>]   {
>]   VERBOSE(VB_RECORD, QString("pmt.FindPid(0x%1) failed")
>]       .arg(pmt.PCRPID(), 0, 16));
>]   return false;
>]   }
>]#endif
>]
>]The output shows that it is failing to find pmt pid 0x1ffe in the video stream.
>]My other channels work okay.  Do you see anything to explain this?
>
>It looks like CBS is sending out a bad stream. The PCRPID should tell 
>you which stream is the reference stream for timecodes. This should be 
>either the video or audio stream. But it looks like CBS is saying the 
>reference stream is 0x1ffe which isn't even in the PMT table (is it 
>present at all?). I don't think we actually use the PCR in any of our 
>A/V sync methods so it might be safe to just assign the PCRPID to the 
>video stream. I don't know if ffmpeg is using the PCR timecodes though...
>
>Of course, it maybe that it is valid to use a completely seperate stream 
>for PCR than the video and audio. Someone with the MPEG spec should be 
>able to confirm this. In that case we should record the PCR stream...
>
>-- Daniel
>  
>

Thanks Daniel!

I changed it to:

    int pcrpidIndex = pmt.FindPID(pmt.PCRPID());

    if (pcrpidIndex < 0)
        pcrpidIndex = _pid_video;

and that fixed the problem.

John



More information about the mythtv-dev mailing list