[dvblast-devel] Problems with some pro CAMs

Marian Ďurkovič md at bts.sk
Sun Jan 9 09:05:32 CET 2011


The error message and no packets are expected - dvblast is running in single
thread, so if you increased the CAPMT_WAIT time to 10 seconds, all functions
were blocked for that amount of time.

Anyway, your later experiments seem to indicate that sleep is needed between CAM
initialization and first CAPMT. Could you please try this:

in file en50221.c find the line

    demux_ResendCAPMTs();

and just before it put:

    msleep(100000);

That would introduce a 100 msec gap between CAM init and the first CAPMT.
Try larger values, but don't be surprised by "couldn't read from DVR device".


    M.

On Sun, 09 Jan 2011 00:41:19 +0200, NetOne - Doychin Dokov wrote
> I've already played with 1.2, -W and different CAPMT_WAIT time, but am 
> not so convinced that is the reason for these malfunctions.
> 
> For the sake of being sure, i recompiled the 1.2 with CAPMT_WAIT of 10 
> seconds, then run it on the Viaccess CAM with a 3-service config file. 
> Here's the output:
> debug: adding first CAPMT for SID 10103 on session 3
> debug: adding CAPMT for SID 10105 on session 3
> debug: adding CAPMT for SID 10106 on session 3
> debug: opening DateTime session (4)
> debug: DateTimeHandle : interval set to 10
>  >> error: couldn't read from DVR device (Value too large for defined 
> data type)
> 
> I've never seen this error when not using -W. The result is the same - 
> only the last service is decrypted. I've monitored the network 
> interface while dvblast was starting up, and noticed that no packets 
> get output until the *last* CAPMT is added. Could it be that the TS is 
> not fed through the CAM while adding CAPMTs, and it's started when 
> dvblast is finished adding CAPMTs? Or something like that? I expected 
> to have output from the first service, decrypted or not, right  after 
> the first CAPMT was added?
> 
> Another, I think, very interesting experiment. The test was done with 
> latest SVN dvblast. I made a shell script, which adds services one by 
> one to the dvblast config file, then reloads the dvblast. I've started 
> it with empty conf before running the script, for the sake of 
> simplicity. Here's the script:
> #!/bin/sh
> echo '239.100.9.2:1234 0 10105' >> dvblast.conf
> dvb-reload
> echo '239.100.9.3:1234 0 10106' >> dvblast.conf
> dvb-reload
> echo '239.100.9.1:1234 0 10103' >> dvblast.conf
> dvb-reload
> 
> (dvb-reload is an alias of dvblastctl -r /tmp/dvblast.sock reload)
> Please note there's no sleep or wait anywhere in this script. When 
> it's started, CAPMTs get added as fast as possible, in a second or so. 
> All three services get decrypted at once, and are running fine.
> 
> I made another experiment, removed the first two 'dvb-reload' lines, 
> so the script just adds all three services to the config file, and 
> signals the already running blank-conf dvblast to reload. The result - 
> again success on all services. At the end of the mail is the output of 
> the dvblast when signalled to reload.
> 
> So, maybe we don't add multiple CAPMT correctly? It's clearly not a 
> module timeout issue, as a wait of even 10 sec does not help mitigate 
> the issue, and it does function okay when configured through the 
> reload trick. Couldn't we make dvblast do what it does when adding 
> CAPMTs on config reload?
> 
> If I can do anything more to help get this issue fixed, please let me 
> know. SSH access available upon request if someone is interested.
> 
> Kind regards,
> Doychin
> 
> Output when run with blank conf, then reloaded with real conf:
> =======================================================
> debug: answering 0 to 1 with size 0
> warning: HUP received, reloading
> debug: conf: 239.100.9.2:1234 config=0x68 sid=10105 pids[0]
> debug: setting filter on PID 104
> debug: conf: 239.100.9.3:1234 config=0x68 sid=10106 pids[0]
> debug: setting filter on PID 105
> debug: conf: 239.100.9.1:1234 config=0x68 sid=10103 pids[0]
> debug: setting filter on PID 102
> debug: setting filter on PID 324
> debug: setting filter on PID 408
> debug: adding first CAPMT for SID 10105 on session 3
> debug: new PMT program=10105 version=5 pcrpid=324
> debug:     - desc 09 sysid=0x500 pid=3005
> debug:     - desc 09 sysid=0x500 pid=6005
> debug:     - desc 09 sysid=0x500 pid=4005
> debug:     - desc 09 sysid=0x500 pid=5005
> debug:     - desc 09 sysid=0x500 pid=2005
> debug:   * ES pid=324 streamtype=0x2
> debug:     - desc 52 unknown
> debug:   * ES pid=408 streamtype=0x4
> debug:     - desc 52 unknown
> debug:     - desc 0a language=rus audiotype=0x1
> debug: end PMT
> debug: setting filter on PID 322
> debug: setting filter on PID 405
> debug: setting filter on PID 435
> debug: adding CAPMT for SID 10103 on session 3
> debug: new PMT program=10103 version=5 pcrpid=322
> debug:     - desc 09 sysid=0x500 pid=6003
> debug:     - desc 09 sysid=0x500 pid=2003
> debug:     - desc 09 sysid=0x500 pid=3003
> debug:     - desc 09 sysid=0x500 pid=4003
> debug:     - desc 09 sysid=0x500 pid=5003
> debug:   * ES pid=322 streamtype=0x2
> debug:     - desc 52 unknown
> debug:   * ES pid=405 streamtype=0x4
> debug:     - desc 52 unknown
> debug:     - desc 0a language=rus audiotype=0x1
> debug:   * ES pid=435 streamtype=0x6
> debug:     - desc 52 unknown
> debug:     - desc 0a language=rus audiotype=0x1
> debug:     - desc 6a ac3
> debug: end PMT
> debug: setting filter on PID 325
> debug: setting filter on PID 410
> debug: setting filter on PID 510
> debug: adding CAPMT for SID 10106 on session 3
> debug: new PMT program=10106 version=4 pcrpid=325
> debug:     - desc 09 sysid=0x500 pid=2006
> debug:     - desc 09 sysid=0x500 pid=6006
> debug:     - desc 09 sysid=0x500 pid=3006
> debug:     - desc 09 sysid=0x500 pid=4006
> debug:     - desc 09 sysid=0x500 pid=5006
> debug:   * ES pid=325 streamtype=0x2
> debug:     - desc 52 unknown
> debug:   * ES pid=410 streamtype=0x4
> debug:     - desc 0a language=rus audiotype=0x1
> debug:     - desc 52 unknown
> debug:   * ES pid=510 streamtype=0x6
> debug:     - desc 45 unknown
> debug:     - desc 56 telx language=rus type=0x1 mag=0 page=0
> debug: end PMT
> 
> _______________________________________________
> dvblast-devel mailing list
> dvblast-devel at videolan.org
> http://mailman.videolan.org/listinfo/dvblast-devel



More information about the dvblast-devel mailing list