Changeset 11300


Ignore:
Timestamp:
01/01/17 20:23:24 (6 years ago)
Author:
Gorgone Impertinence
Message:

add coolapi-legacy for COOLSTREAM HD1 and HD2

Location:
trunk
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Makefile

    r11246 r11300  
    273273SRC-$(CONFIG_WITH_AZBOX) += module-dvbapi-azbox.c
    274274SRC-$(CONFIG_WITH_MCA) += module-dvbapi-mca.c
    275 SRC-$(CONFIG_WITH_COOLAPI) += module-dvbapi-coolapi.c
     275### SRC-$(CONFIG_WITH_COOLAPI) += module-dvbapi-coolapi.c
     276### experimental reversed API
     277SRC-$(CONFIG_WITH_COOLAPI) += module-dvbapi-coolapi-legacy.c
    276278SRC-$(CONFIG_WITH_COOLAPI2) += module-dvbapi-coolapi.c
    277279SRC-$(CONFIG_WITH_SU980) += module-dvbapi-coolapi.c
  • trunk/module-dvbapi-coolapi.c

    r11095 r11300  
    689689        coolapi_check_error("cnxt_dmx_close_filter", result);
    690690    }
     691   
     692    // COOLAPI2 - We don't want to close Channel on no ECM Filters (Makes AU / EMMs work)
     693    if(dmx->type != TYPE_ECM)
     694        { return 0; }
     695
    691696    if (channel) {
    692697        result = cnxt_dmx_channel_close(channel);
  • trunk/module-dvbapi.c

    r11289 r11300  
    11251125int32_t dvbapi_stop_filter(int32_t demux_index, int32_t type)
    11261126{
     1127    #if defined(WITH_COOLAPI) || defined(WITH_COOLAPI2)
     1128    // We prevented PAT and PMT from starting, so lets don't close them either.
     1129    if (type != TYPE_ECM && type != TYPE_EMM && type != TYPE_SDT) {
     1130        return 1;
     1131    }
     1132    #endif
     1133
    11271134    int32_t g, error = 0;
    11281135
     
    13721379void dvbapi_start_pat_filter(int32_t demux_index)
    13731380{
     1381    #if defined(WITH_COOLAPI) || defined(WITH_COOLAPI2)
     1382        // PAT-Filter breaks API and OSCAM for Coolstream.
     1383        // Don't use it
     1384        return;
     1385    #endif
     1386
    13741387    dvbapi_start_filter(demux_index, demux[demux_index].pidindex, 0x00, 0x001, 0x01, 0x00, 0xFF, 0, TYPE_PAT);
    13751388}
     
    13771390void dvbapi_start_pmt_filter(int32_t demux_index, int32_t pmt_pid)
    13781391{
     1392    #if defined(WITH_COOLAPI) || defined(WITH_COOLAPI2)
     1393        // PMT-Filter breaks API and OSCAM for Coolstream.
     1394        // Don't use it
     1395        return;
     1396    #endif
     1397
    13791398    uchar filter[16], mask[16];
    13801399    memset(filter, 0, 16);
     
    35303549    }
    35313550
    3532     if(cfg.dvbapi_au > 0 && demux[demux_id].EMMpidcount == 0) // only do emm setup if au enabled and not running!
    3533     {
    3534         demux[demux_id].emm_filter = -1; // to register first run emmfilter start
    3535         if(demux[demux_id].emmstart.time == 1)   // irdeto fetch emm cat direct!
    3536         {
    3537             cs_ftime(&demux[demux_id].emmstart); // trick to let emm fetching start after 30 seconds to speed up zapping
    3538             dvbapi_start_filter(demux_id, demux[demux_id].pidindex, 0x001, 0x001, 0x01, 0x01, 0xFF, 0, TYPE_EMM); //CAT
    3539         }
    3540         else { cs_ftime(&demux[demux_id].emmstart); } // for all other caids delayed start!
    3541     }
    3542 
    35433551    if(start_descrambling)
    35443552    {
     
    35783586        }
    35793587    }
     3588   
     3589    int32_t DoNotStartEMM = NULL;
     3590    #if defined(WITH_COOLAPI) || defined(WITH_COOLAPI2)
     3591        // Don't start and Stop EMM Filters over and over again if we are on FTA
     3592        if (dvbapi_client->last_caid == NO_CAID_VALUE) {
     3593            DoNotStartEMM = 1;
     3594        }
     3595    #endif
     3596   
     3597    if(cfg.dvbapi_au > 0 && demux[demux_id].EMMpidcount == 0 && !DoNotStartEMM) // only do emm setup if au enabled and not running!
     3598    {
     3599        demux[demux_id].emm_filter = -1; // to register first run emmfilter start
     3600        if(demux[demux_id].emmstart.time == 1)   // irdeto fetch emm cat direct!
     3601        {
     3602            cs_ftime(&demux[demux_id].emmstart); // trick to let emm fetching start after 30 seconds to speed up zapping
     3603            dvbapi_start_filter(demux_id, demux[demux_id].pidindex, 0x001, 0x001, 0x01, 0x01, 0xFF, 0, TYPE_EMM); //CAT
     3604        }
     3605        else { cs_ftime(&demux[demux_id].emmstart); } // for all other caids delayed start!
     3606    }
     3607
    35803608    return demux_id;
    35813609}
     
    66576685    }
    66586686#endif
    6659     #if defined WITH_COOLAPI || defined WITH_COOLAPI2
     6687    // Isn't implemented in COOLAPI-1 (legacy)
     6688    #if defined WITH_COOLAPI2
    66606689    case COOLAPI:
    66616690    {
Note: See TracChangeset for help on using the changeset viewer.