Skip to content
This repository has been archived by the owner on Apr 14, 2024. It is now read-only.

Commit

Permalink
reworked index related code:
Browse files Browse the repository at this point in the history
converting back and forth between int8_t, int32_t and uint32_t is very confusing -> replaced with ca_index_t
no longer using index == 0 for FTA

this makes the code a lot easier to understand and helps to find bugs

git-svn-id: http://www.streamboard.tv/svn/oscam/trunk@11095 4b0bc96b-bc66-0410-9d44-ebda105a78c1
  • Loading branch information
Aeon authored and Aeon committed Nov 5, 2015
1 parent 6db610e commit d826c7a
Show file tree
Hide file tree
Showing 6 changed files with 120 additions and 83 deletions.
3 changes: 2 additions & 1 deletion module-dvbapi-coolapi.c
Original file line number Diff line number Diff line change
Expand Up @@ -753,7 +753,8 @@ int32_t coolapi_close_device(int32_t fd)
/* write cw to all demuxes in mask with passed index */
int32_t coolapi_write_cw(int32_t mask, uint16_t *STREAMpids, int32_t count, ca_descr_t *ca_descr)
{
int32_t i, idx = ca_descr->index;
int32_t i;
uint32_t idx = ca_descr->index;
int32_t result;
void *channel;

Expand Down
10 changes: 5 additions & 5 deletions module-dvbapi-stapi.c
Original file line number Diff line number Diff line change
Expand Up @@ -652,11 +652,11 @@ static void stapi_startdescrambler(int32_t demux_id, int32_t dev_index, int32_t
return;
}

int32_t stapi_set_pid(int32_t demux_id, int32_t UNUSED(num), int32_t idx, uint16_t UNUSED(pid), char *UNUSED(pmtfile))
int32_t stapi_set_pid(int32_t demux_id, int32_t UNUSED(num), ca_index_t idx, uint16_t UNUSED(pid), char *UNUSED(pmtfile))
{
int32_t n;

if(idx == -1)
if(idx == INDEX_STAPI_DISABLE)
{
for(n = 0; n < PTINUM; n++)
{
Expand Down Expand Up @@ -704,14 +704,14 @@ int32_t stapi_write_cw(int32_t demux_id, uchar *cw, uint16_t *STREAMpids, int32_
if(demux[demux_id].DescramblerHandle[n] == 0) { continue; }

int32_t pidnum = demux[demux_id].pidindex; // get current pidindex used for descrambling
int32_t idx = demux[demux_id].ECMpids[pidnum].index[0];
ca_index_t idx = demux[demux_id].ECMpids[pidnum].index[0];

if(!idx) // if no indexer for this pid get one!
if(idx == INDEX_INVALID) // if no indexer for this pid get one!
{
idx = dvbapi_get_descindex(demux_id);
demux[demux_id].ECMpids[pidnum].index[0] = idx;
cs_log_dbg(D_DVBAPI, "Demuxer %d PID: %d CAID: %04X ECMPID: %04X is using index %d", demux_id, pidnum,
demux[demux_id].ECMpids[pidnum].CAID, demux[demux_id].ECMpids[pidnum].ECM_PID, idx - 1);
demux[demux_id].ECMpids[pidnum].CAID, demux[demux_id].ECMpids[pidnum].ECM_PID, idx);
}

for(k = 0; k < STREAMpidcount; k++)
Expand Down
2 changes: 1 addition & 1 deletion module-dvbapi-stapi.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
int32_t stapi_open(void);
int32_t stapi_set_filter(int32_t demux_id, uint16_t pid, uchar *filter, uchar *mask, int32_t num, char *pmtfile);
int32_t stapi_remove_filter(int32_t demux_id, int32_t num, char *pmtfile);
int32_t stapi_set_pid(int32_t demux_id, int32_t num, int32_t idx, uint16_t pid, char *pmtfile);
int32_t stapi_set_pid(int32_t demux_id, int32_t num, uint32_t idx, uint16_t pid, char *pmtfile);
int32_t stapi_write_cw(int32_t demux_id, uchar *cw, uint16_t *, int32_t, char *pmtfile);
int32_t stapi_activate_section_filter(int32_t fd, uchar *filter, uchar *mask);

Expand Down
10 changes: 5 additions & 5 deletions module-dvbapi-stapi5.c
Original file line number Diff line number Diff line change
Expand Up @@ -623,9 +623,9 @@ int32_t stapi_init_descrambler(int32_t dev_index)
return 1;
}

int32_t stapi_set_pid(int32_t demux_id, int32_t UNUSED(num), int32_t idx, uint16_t pid, char *UNUSED(pmtfile))
int32_t stapi_set_pid(int32_t demux_id, int32_t UNUSED(num), ca_index_t idx, uint16_t pid, char *UNUSED(pmtfile))
{
if(idx == -1)
if(idx == INDEX_STAPI_DISABLE)
{
if (tkd_desc_info[demux[demux_id].dev_index].path_hndl != 0)
{
Expand Down Expand Up @@ -715,14 +715,14 @@ int32_t stapi_write_cw(int32_t demux_id, uchar *cw, uint16_t *STREAMpids, int32_

//@theparasol: please verify this block is in the right place
int32_t pidnum = demux[demux_id].pidindex; // get current pidindex used for descrambling
int32_t idx = demux[demux_id].ECMpids[pidnum].index[0];
ca_index_t idx = demux[demux_id].ECMpids[pidnum].index[0];

if(!idx) // if no indexer for this pid get one!
if(idx == INDEX_INVALID) // if no indexer for this pid get one!
{
idx = dvbapi_get_descindex(demux_id);
demux[demux_id].ECMpids[pidnum].index[0] = idx;
cs_log_dbg(D_DVBAPI, "Demuxer %d PID: %d CAID: %04X ECMPID: %04X is using index %d", demux_id, pidnum,
demux[demux_id].ECMpids[pidnum].CAID, demux[demux_id].ECMpids[pidnum].ECM_PID, idx - 1);
demux[demux_id].ECMpids[pidnum].CAID, demux[demux_id].ECMpids[pidnum].ECM_PID, idx);
}
//

Expand Down
Loading

0 comments on commit d826c7a

Please sign in to comment.