static void coolapi_read_data(dmx_t *dmx, dmx_callback_data_t *data) { if(!dmx) { cs_log_dbg(D_DVBAPI, "handle is NULL!"); return; } int32_t ret; uchar buffer[4096]; SAFE_SETSPECIFIC(getclient, dvbapi_client); SAFE_MUTEX_LOCK(&dmx->mutex); memset(buffer, 0, sizeof(buffer)); ret = coolapi_read(dmx, data, buffer); SAFE_MUTEX_UNLOCK(&dmx->mutex); if(ret > -1) { uint16_t filters = data->num; uint16_t flt; for (flt = 0; flt < filters; flt++) { uint32_t n = (uint32_t)data->tags[flt]; S_COOL_FILTER *filter = find_filter_by_channel(data->channel, n); if (!filter || data->filters[flt] != filter->filter) { cs_log_dbg(D_DVBAPI, "filter not found in notification!!!!"); continue; } dvbapi_process_input(dmx->demux_id, n, buffer, data->len); } } }
void coolapi_read_data(dmx_t * dmx, dmx_callback_data_t * data) { if(!dmx) { cs_debug_mask(D_DVBAPI, "handle is NULL!"); return; } int32_t ret; pthread_setspecific(getclient, dvbapi_client); pthread_mutex_lock(&dmx->mutex); memset(dmx->buffer,0,4096); ret = coolapi_read(dmx, data); pthread_mutex_unlock(&dmx->mutex); if (ret > -1) dvbapi_process_input(dmx->demux_id, dmx->filter_num, dmx->buffer, data->len); }
void coolapi_read_data(int32_t fd, int32_t len) { int32_t ret; unsigned char buffer[4096]; dmx_t * dmx = find_demux(fd, 0); if(!dmx) { cs_debug_mask(D_DVBAPI, "handle is NULL!"); return; } pthread_setspecific(getclient, dvbapi_client); pthread_mutex_lock(&dmx->mutex); ret = coolapi_read(dmx->fd, buffer, len); pthread_mutex_unlock(&dmx->mutex); dvbapi_process_input(dmx->demux_id, dmx->filter_num, buffer, len); }