[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