I have LE40B679 which is CI+ with additional satellite tuner, but i guess it does not make any difference.
My CAM is Neotion Conax CAS-7 for N-tv - polish provider.
Try to play with writing values to mentioned above mem area. As sbav1 wrote, we have actual video pid @ 0x30110100 byte (or byte+half-byte?), so it will vary with every channel. Try to figure out what exactly kills the signal. You cannot change last three characters, becouse they store PID. Try to:
-Set TV to some FTA channel with CAM inserted
-Read @ 0x30110100 value
-try to modify value by eating it's left part, but do not change last four characters
For example, if you get 0x141A0A1, try 0x41A0A1.
If signal die, try reboot, then set to same channel and try 0x1A0A1.
If still no success, then probably we have totally diferent CAM's and i have luck that mine works
Record TV over USB
Re: Record TV over USB
TSD/PVR PID filter register bits (a missing explanation[s]):
Also, check out: TDM -> 11 : TD Debug -> 0x04 : spI Debug -> 50 : TSD kernel level debug -> 0 : Tsd monitor
Yields an useful (?) info; may be helpful while trying to clarify some things:
Overall, this CI/CI+ CAM business seems to be awfully complicated . I can't help very much with that topic, my setup is very simple (non-CI+ B650, no CI/CI+ CAM, just one DVB-T mux with FTA programs only).
Code: Select all
## PID filter registers for bank 0|1 (0x30110100|0x30110180); rv=[31..0]
1) PID: // lldTsDmxSetPidFilter, ...
rv & 0x00001fff // mask: 00000000 00000000 00011111 11111111
2) PID_EN: // devTsd_EnablePidFilter, ...
rv & 0x00002000 // mask: 00000000 00000000 00100000 00000000
3) VidIndicator: // lldTsDmxSetVidIndicator, devTsd_SetPidFilterPvr, lldPvr_SetPvrPid
## set on entry #0 only while PVR on (???)
rv & 0x00004000 // mask: 00000000 00000000 01000000 00000000
4) DMX_EN: // lldTsDmxSetPidFilter, ...
rv & 0x00008000 // mask: 00000000 00000000 10000000 00000000
5) EnableExtractPayload: // devTsd_SetPidFilterPvr, lldPvr_SetPvrPid, ...
rv & 0x00010000 // mask: 00000000 00000001 00000000 00000000
6) Unknown (unused ???)
rv & 0x00020000 // mask: 00000000 00000010 00000000 00000000
7) 264_EN: // lldTsDmxDebugMon
# probably unused (???)
rv & 0x00040000 // mask: 00000000 00000100 00000000 00000000
8) PVR_EN: // lldTsDmxSetPidFilter, lldPvr_SetPvrPid, ...
rv & 0x00080000 // mask: 00000000 00001000 00000000 00000000
9) PsiReplace: // lldTsDmxSetPsiReplace,
rv & 0x00100000 // mask: 00000000 00010000 00000000 00000000
10) BYPASS_EN: // devTsd_SetPidBankBypass(..., bank_id, bool bypass_enable) -> lldTsDmxSetPidFilterBypass
# !!! only set on entry #0 of bank 0|1
rv & 0x00200000 // mask: 00000000 00100000 00000000 00000000
11) NO_SCRAMBLE|ca_type.resrv|ca_type.resrv|AES-ECB|DES-ECB|3DES-CBC|ca_type.resrv|AES-CBC:
# !!! only set on entry #0 of bank 0|1
# devTsd_SetPidBankCaType(..., bank_id, int ca_type) -> lldTsDmxSetPidBankCaType(bank_id, ca_type2) // ca_type2: 0..5
rv & 0x01C00000 // mask: 00000001 11000000 00000000 00000000
Yields an useful (?) info; may be helpful while trying to clarify some things:
Code: Select all
root@localhost:~/bin# dmesg
[Ext1_0] (Locked:Valid) Serial_sync_disabled Parallel
Sync_detection_enabled
+ RESET_SYNC=Normal SYNC_LOCK=3 SYNC_LOSS=3
[ PID Filter #000 ] PID=0x00CA PID_EN DMX_EN NO_SCRAMBLE
TARGET_AREA=Video1 DEMUX_MODE=MPEG2_PES QUEUE_SIZE=2048K PCR_EN
+
Queue From=0x76A00000 Wr=0x76B7C3A8 To=0x76A00000
[ PID Filter #001 ] PID=0x00CC PID_EN DMX_EN NO_SCRAMBLE
TARGET_AREA=Audio0 DEMUX_MODE=MPEG2_PES QUEUE_SIZE=200K
+
Queue From=0x76680000 Wr=0x766882C0 To=0x76680000
[ PID Filter #005 ] PID=0x0000 PID_EN DMX_EN NO_SCRAMBLE
TARGET_AREA=Section DEMUX_MODE=MPEG2_SECTION QUEUE_SIZE=8K
+
Queue From=0x79F8A000 Wr=0x79F8A4F4 To=0x79F8A4F0
Section Filter #0
Mask=0xFFFFFFFF_FFFFFFFF
Mode=0xFFFFFFFF_FFFFFFFF
Data=0x00000000_00000000
Section Filter #1
Mask=0xFF000000_00000000
Mode=0xFF000000_00000000
Data=0x00000000_00000000
[ PID Filter #006 ] PID=0x0010 PID_EN DMX_EN NO_SCRAMBLE
TARGET_AREA=Section DEMUX_MODE=MPEG2_SECTION QUEUE_SIZE=8K
+
Queue From=0x79F8C000 Wr=0x79F8C9F4 To=0x79F8C9F0
Section Filter #0
Mask=0xFFFFFFFF_FFFFFFFF
Mode=0xFFFFFFFF_FFFFFFFF
Data=0x00000000_00000000
Section Filter #2
Mask=0xFF000000_00000000
Mode=0xFF000000_00000000
Data=0x40000000_00000000
[ PID Filter #007 ] PID=0x0011 PID_EN DMX_EN NO_SCRAMBLE
TARGET_AREA=Section DEMUX_MODE=MPEG2_SECTION QUEUE_SIZE=8K
+
Queue From=0x79F8E000 Wr=0x79F8FB2C To=0x79F8FB28
Section Filter #0
Mask=0xFFFFFFFF_FFFFFFFF
Mode=0xFFFFFFFF_FFFFFFFF
Data=0x00000000_00000000
Section Filter #3
Mask=0xFF000000_00000000
Mode=0xFF000000_00000000
Data=0x42000000_00000000
[ PID Filter #008 ] PID=0x0012 PID_EN DMX_EN NO_SCRAMBLE
TARGET_AREA=Section DEMUX_MODE=MPEG2_SECTION QUEUE_SIZE=8K
+
Queue From=0x79F90000 Wr=0x79F91007 To=0x79F90E94
Section Filter #0
Mask=0xFFFFFFFF_FFFFFFFF
Mode=0xFFFFFFFF_FFFFFFFF
Data=0x00000000_00000000
Section Filter #4
Mask=0xFF000000_00000000
Mode=0xFF000000_00000000
Data=0x4E000000_00000000
Section Filter #14
Mask=0xFF000000_00000000
Mode=0xFF000000_00000000
Data=0x50000000_00000000
Section Filter #15
Mask=0xFF000000_00000000
Mode=0xFF000000_00000000
Data=0x51000000_00000000
Section Filter #16
Mask=0xFF000000_00000000
Mode=0xFF000000_00000000
Data=0x4F000000_00000000
Section Filter #17
Mask=0xFF000000_00000000
Mode=0xFF000000_00000000
Data=0x60000000_00000000
Section Filter #18
Mask=0xFF000000_00000000
Mode=0xFF000000_00000000
Data=0x61000000_00000000
[ PID Filter #009 ] PID=0x0014 PID_EN DMX_EN NO_SCRAMBLE
TARGET_AREA=Section DEMUX_MODE=MPEG2_SECTION QUEUE_SIZE=8K
+
Queue From=0x79F92000 Wr=0x79F92C44 To=0x79F92C40
Section Filter #0
Mask=0xFFFFFFFF_FFFFFFFF
Mode=0xFFFFFFFF_FFFFFFFF
Data=0x00000000_00000000
Section Filter #5
Mask=0xFF000000_00000000
Mode=0xFF000000_00000000
Data=0x73000000_00000000
[ PID Filter #010 ] PID=0x00C9 PID_EN DMX_EN NO_SCRAMBLE
TARGET_AREA=Section DEMUX_MODE=MPEG2_SECTION QUEUE_SIZE=8K
+
Queue From=0x79F94000 Wr=0x79F952A4 To=0x79F952A0
Section Filter #0
Mask=0xFFFFFFFF_FFFFFFFF
Mode=0xFFFFFFFF_FFFFFFFF
Data=0x00000000_00000000
Section Filter #6
Mask=0xFF000000_00000000
Mode=0xFF000000_00000000
Data=0x02000000_00000000
[ PID Filter #011 ] PID=0x00CD PID_EN DMX_EN NO_SCRAMBLE
TARGET_AREA=Section DEMUX_MODE=DVB_PES QUEUE_SIZE=8K
+
Queue From=0x79F96000 Wr=0x79F960F8 To=0x79F96000
Section Filter #0
Mask=0xFFFFFFFF_FFFFFFFF
Mode=0xFFFFFFFF_FFFFFFFF
Data=0x00000000_00000000
[CA Buffer] Empty_slot=4
[TS Buffer] Empty_slot=2
[DISCONTINOUS_CC_VIDEO error count = 5]
[DISCONTINOUS_CC_AUDIO error count = 5]
[DISCONTINOUS_CC_SECTION error count = 2]
[DUPLICATE_CC_VIDEO error count = 0]
[DUPLICATE_CC_AUDIO error count = 0]
[DUPLICATE_CC_SECTION error count = 0]
[TRANSPORT_ERROR_INDICATOR error count = 11]
[ADAPTATION_FIELD error count = 0]
[CVD] MPEG0 TsdWriteAddr=0x0 MpegReadAddr=0x0
Re: Record TV over USB
Chance that it will work better with different CAM is not a big one, IMO. It may be worth a try, I guess. Perhaps you could just borrow another CAM to perform a test?viper3k wrote:Pfff... still no luck ..
But could the only reason why it aint working for me be my CAM module .. or could it also be that my TV provider has some kind of different protection ??
If it is just the CAM ..then I am willing to buy a new one I guess.
BTW, what model / firmware version do you have, exactly?
Re: Record TV over USB
I'll try to check this firmware version for a possible glitches in PVR code, but [overall] it's not looking very optimistic .viper3k wrote:I've got an LE32B650 CI+ with 2006.2 patched firmware (from russian site )
Re: Record TV over USB
I would like to implement PIP hide/unhide function in PVR+ but I have no idea how to call the functions you mentioned. I was trying to get PIP window size using function SdVideo_GetPCPosition (correct one?):sbav1 wrote:...
- PIP window can be hidden, by turning Chelsea scaler #1 off. It's possible from TDM. Probably doable from Content Library application level with simple SdVideo_Get()/SdVideo_Set() calls (not tested yet).
Code: Select all
// WARNING! This is probably wrong method! Do not use.
typedef struct
{
int x, y, w, h; // I'm not sure!
} SdPoint_t;
extern int _Z21SdVideo_GetPCPosition11SdVideoID_kP9SdPoint_t(int, SdPoint_t *);
//extern int _Z21SdVideo_SetPCPosition11SdVideoID_kP9SdPoint_t(int, SdPoint_t *);
SdPoint_t pip_pos;
// call exeDSP function:
_Z21SdVideo_GetPCPosition11SdVideoID_kP9SdPoint_t(0, &pip_pos);
I need PIP hide function for watching external (HDMI) video source with audio coming from internal DVB-C tuner.
I am also thinking about multi-channel (single mux) recording but I need more information. I need to know what mux (MUX ID or TSid, Network ID) we have now or know current channel number and DVB-type (-C, -S or -T). Then we could read channel table from mtd_rwarea files and select PIDs for current mux only (to fill filter table with allowed PIDs only).