[mythtv] PCR in Video PID w/o payload indicator set is not recorded

Sean Devine sdevine at comcast.net
Wed Feb 2 12:21:44 UTC 2011


On 02/02/2011 12:53 AM, Daniel Kristjansson wrote:
> On Tue, 2011-02-01 at 16:53 -0500, Sean Devine wrote:
>> Hello,
>>
>> I'm trying to record CBS NY or Philadelphia with an HDHomeRun.  They
>> transmit their PCR in the video pid, but it is sent in a packet with no
>> payload.  Myth doesn't seem to record this and (understandably) giving
>> some player software trouble during playback.
> Can you identify a program on WCBS-DT that reliably has this
> issue? If so I can reproduce the problem sometime next week
> and hopefully come up with a fix quickly. It's been a while
> since I looked at the code but the DVB recorder already has
> some provision for recording self-contained PCR streams.
> Either the common code doesn't handle this particular PCR
> stream, or the HDHRRecorder isn't using the same code to handle
> this as DVBRecorder.

Yes, their one any only program "WCBS-HD" exhibits this behavior.  
Whatever encoder/encoder configuration they are using seems to generate 
PCR this way, so time of day doesn't seem to matter either.

Just to clarify, they aren't using a separate PCR pid - the PCR is set 
in the video pid 0x31.  It's contained in a TS packet with no payload 
(adaptation_field_control == 2).  MPEGStreamData doesn't seem to notify 
listeners about these types TS packets - and if it did, HDHRRecorder 
would also need some modification.  I think the .HasPayload() checks 
alone are insufficient, I've removed them locally as a work around.

Alternatively, you could inspect the adaption_field for the PCR flag, 
but I'm not sure I see the disadvantage of writing out all packets on 
the Audio & Video pids signaled in the PSI.

 From DVBSnoop:

*adaptation_field_control: 2 (0x02)  [= adaptation_field only, no payload]*
continuity_counter: 15 (0x0f)  [= (sequence ok)]
     Adaptation_field:
         adaptation_field_length: 183 (0xb7)
         discontinuity_indicator: 0 (0x00)
         random_access_indicator: 0 (0x00)
         elementary_stream_priotity_indicator: 0 (0x00)
         *PCR_flag: 1 (0x01)*
         OPCR_flag: 0 (0x00)
         splicing_point_flag: 0 (0x00)
         transport_private_data_flag: 0 (0x00)
         adaptation_field_extension_flag: 0 (0x00)
         program_clock_reference:
             baseH: 1 (0x01)
             baseL: 1095581789 (0x414d405d)
             reserved: 63 (0x3f)
             extension: 81 (0x0051)
              ==> program_clock_reference: 1617164725581 
(0x17886876d4d)  [= PCR-Timestamp: 16:38:14.989836]

- Sean



More information about the mythtv-dev mailing list