Page 1 of 1

Is there a way of getting PAT packets using PID 0x2000?

Posted: Thu Oct 04, 2007 6:07 am
by sdf
Hi there!

I tried filtering whole transponder with setting wPID = 0x2000 (or $2000 in Delphi) in the TStartFilterParams struct, and in the callback function i got everyting *except* the packets with PID 0 (PAT).

When i set filter only on PID 0 - the callback receives PAT packets. When i set one filter for PID 0 and another with "wildcard" PID 0x2000 - the callback on PID 0 filter stops being called back :/

I also tried initialize the module with MODTYPE_NONE, MODTYPE_RECORD and MODTYPE_whatever, hoping that in some module types pid 0 is not filtered out when 0x2000 is used, but no luck

Is there a way to receive packets for all PIDs in the callback, including PID 0, short of spawning filter for each? Or, is there a module command to enumerate (parse) all programs with their PIDs (PMT, PCR, Vid, Aud1, Aud2 etc.), rather than parsing PAT and PMTs manually?

Thanks

Posted: Thu Oct 04, 2007 12:08 pm
by rel
hello

I think the next DD version will fix the pid 0 problem.
is there a module command to enumerate (parse) all programs with their PIDs (PMT, PCR, Vid, Aud1, Aud2 etc.), rather than parsing PAT and PMTs manually?
you can reach the internal channel list array to get all the information.
DDMODAPI_CHL_GET_POINTER


use a DWORD as parameter to get the pointer to TCHL structure. (in LParam)

Posted: Mon Oct 08, 2007 12:26 am
by sdf
Thanks a lot, rel!

DDMODAPI_CHL_GET_POINTER worked

Looking forward for the next version, where pid 0 filtering is fixed :)