Hi, I'm not sure that this is the right thread for me to put my patch for libdvbsi, but it seems to me that the outcome of this thread will make some changes to the libdvbsi, so it might not be such a bad place to put my patch ;). The patch stops the loop in parse_cab_channel_list function when the channel is found. It looks like this when I use it. root@darkstar:~# ./dvb-apps/util/ca_zap/ca_zap -c ~/.czap/channels.conf -n SVT1 -t cab Using Adpater=[/dev/dvb/adapter0] Frontend=[/dev/dvb/adapter0/frontend0] Demux=[/dev/dvb/adapter0/demux0] Slot=[/dev/dvb/adapter0/ca0] Parsing /root/.czap/channels.conf Cable frontend parse_cab_channel_list: Channel=[SVT1], Frequency=[290000000], Inversion=[2], FEQ=[0], Modulation=[3], Symbol Rate=[6875000], Video=[4102], Audio=[4358], Service=[1097] Service ID=[1097] parse_pat: ----------------->parse PAT section parse_pat: PAT => Section Length=[33], TS ID=[45] parse_si: PMT PID = [262] parse_si: PAT: Close Demux /dev/dvb/adapter0/demux0 parse_pmt: PMT Words=[ 02 b0 4e 04 49 df 00 00 f0 06 f0 17 09 04 0b 00 e3 76 09 0f 05 00 e3 06 10 01 00 13 01 40 14 03 00 88 00 02 f0 06 f0 00 03 f1 06 f0 06 0a 04 73 77 65 00 06 ff 06 f0 07 56 05 73 77 65 09 00 06 f2 06 f0 09 6a 01 00 0a 04 73 77 65 00 1d 64 66 72 ] parse_pmt: ----------->parse PMT section, PMT PID=[262], bytes=[81] parse_pmt_header: Table ID=[2], Section Length=[78], Program Number=[1097], Section Number=[0], PCR PID=[4102], Program info length=[23] parse_pmt: Program info length=[23] INFO:: Parsing descriptor: parse_ca_descriptor, Tag=[09], Length=[4] parse_ca_descriptor: Tag=[09], Length=[04], CA System=[b00], CA PID=[376] parse_ca_descriptor: CA Private Data=[ ] parse_ca_descriptor: Pos=[18] parse_pmt: Count=[18], Position=[18], Program descriptor count=[23] INFO:: Parsing descriptor: parse_ca_descriptor, Tag=[09], Length=[15] parse_ca_descriptor: Tag=[09], Length=[0f], CA System=[500], CA PID=[306] parse_ca_descriptor: CA Private Data=[ 10 01 00 13 01 40 14 03 00 88 00 ] parse_ca_descriptor: Pos=[35] parse_pmt: Count=[54], Position=[35], Program descriptor count=[23] parse_streams: Elements=[ 02 f0 06 f0 00] parse_streams: Stream=[0], Stream Type=[2], Elementary PID=[4102], ES info length=[0] parse_streams: Elements=[ 03 f1 06 f0 06 0a 04 73 77 65 00] parse_streams: Stream=[1], Stream Type=[3], Elementary PID=[4358], ES info length=[6] INFO:: Parsing descriptor: parse_iso_639_language_descriptor, Tag=[0a], Length=[4] copy_en50221_pmt_object: Copying EN50221 Header copy_en50221_pmt_object: Program Number=[1097], Program info length=[23] copy_en50221_pmt_object: Program level descriptor count=[2] copy_en50221_pmt_object: CA descriptor=[09] found, @ [0xbfe55c84], descriptor length=[0f] copy_en50221_descriptor_object: Tag=[09], Length=[0f], CA system ID=[500], CA PID=[306] copy_en50221_descriptor_object: Private bytes=[11] [ 10 01 00 13 01 40 14 03 00 88 00 ] copy_en50221_pmt_object: [0] CA descriptor copied copy_en50221_pmt_object: CA descriptor=[00] found, @ [0xbfe55c84], descriptor length=[00] copy_en50221_stream_object: Stream Type=[2], Elementary PID=[4102], ES length=[0], Number of descriptors=[0] copy_en50221_stream_object: Stream Type=[3], Elementary PID=[4358], ES length=[6], Number of descriptors=[0] do_en50221_pmt_object: CA PMT List Management=[03] set_pmt_command: Setting PMT Command set_pmt_command: CA descriptor found @ PROGRAM Level, Setting CA PMT command=[01] do_en50221_pmt_object: Object length=[272], Total length=[34] asn_1_encode: Length=[34] asn_1_encode: length indicator=[22] do_en50221_pmt_object: ASN.1 words=[1], Length Array=[ 34 ] en50221_encode_header: CA PMT List Mgmt=[3], Program Number=[1097], Program info length=[23] write_en50221_pmt_object: EN50221 header encoded write_en50221_pmt_object: Program level descriptor @ [0x80520d0], count=[2], tag=[09], length=[0f] encode_ca_pmt_command: Encoding SCRAMBLING @ PROGRAM Level, Command=[01] en50221_encode_descriptor: Tag=[09], length=[0f], CA system id=[500], CA PID=[306] en50221_encode_descriptor: Private Bytes=[11] [ 10 01 00 13 01 40 14 03 00 88 00 ] write_en50221_pmt_object: Program level descriptor @ [0x80520d0], count=[2], tag=[00], length=[00] write_en50221_pmt_object: Descriptor length=[0] en50221_encode_streams: Stream type=[02], ES PID=[1006], ES Info length=[00] en50221_encode_streams: Stream type=[03], ES PID=[1106], ES Info length=[06] debug_message: CA MESSAGE=[ 9f 80 32 22 03 04 49 fd 10 17 01 09 0f 05 00 e3 06 10 01 00 13 01 40 14 03 00 88 00 02 f0 06 f0 00 03 f1 06 f0 00 ] I'm to much of a newbie regarding DVB an CAM to make any conclusion what this ca_zap log means. Is this the expected result? When I read Documentation/dvb/ci.txt it says "(d) Hopeflly Enjoy your favourite subscribed channel as you do with a FTA card." when ca_zap works, but I do not understand how? Regards, Per -------------- next part -------------- A non-text attachment was scrubbed... Name: libdvbsi.patch Type: text/x-patch Size: 1789 bytes Desc: not available Url : http://www.linuxtv.org/pipermail/linux-dvb/attachments/20051010/a84f6005/libdvbsi.bin