Exemple #1
0
static void
pkt_destroy(th_pkt_t *pkt)
{
  pktbuf_ref_dec(pkt->pkt_payload);
  pktbuf_ref_dec(pkt->pkt_meta);

  free(pkt);
}
Exemple #2
0
static void
pkt_destroy(th_pkt_t *pkt)
{
  if (pkt) {
    pktbuf_ref_dec(pkt->pkt_payload);
    pktbuf_ref_dec(pkt->pkt_meta);

    free(pkt);
    memoryinfo_free(&pkt_memoryinfo, sizeof(*pkt));
  }
}
Exemple #3
0
/**
 * Allocate a new packet and give it a refcount of one (which caller is
 * suppoed to take care of)
 */
th_pkt_t *
pkt_alloc(streaming_component_type_t type, const uint8_t *data, size_t datalen,
          int64_t pts, int64_t dts, int64_t pcr)
{
  th_pkt_t *pkt;
  pktbuf_t *payload;

  if (datalen > 0) {
    payload = pktbuf_alloc(data, datalen);
    if (payload == NULL)
      return NULL;
  } else {
    payload = NULL;
  }

  pkt = calloc(1, sizeof(th_pkt_t));
  if (pkt) {
    pkt->pkt_type = type;
    pkt->pkt_payload = payload;
    pkt->pkt_dts = dts;
    pkt->pkt_pts = pts;
    pkt->pkt_pcr = pcr;
    pkt->pkt_refcount = 1;
    memoryinfo_alloc(&pkt_memoryinfo, sizeof(*pkt));
  } else {
    if (payload)
      pktbuf_ref_dec(payload);
  }
  return pkt;
}
Exemple #4
0
static void
htsp_msg_destroy(htsp_msg_t *hm)
{
  htsmsg_destroy(hm->hm_msg);
  if(hm->hm_pb != NULL)
    pktbuf_ref_dec(hm->hm_pb);
  free(hm);
}
Exemple #5
0
void
streaming_start_unref(streaming_start_t *ss)
{
  int i;

  if((atomic_add(&ss->ss_refcount, -1)) != 1)
    return;

  service_source_info_free(&ss->ss_si);
  for(i = 0; i < ss->ss_num_components; i++)
    if(ss->ss_components[i].ssc_gh)
      pktbuf_ref_dec(ss->ss_components[i].ssc_gh);
  free(ss);
}
Exemple #6
0
void
streaming_msg_free(streaming_message_t *sm)
{
  if (!sm)
    return;

  switch(sm->sm_type) {
  case SMT_PACKET:
    if(sm->sm_data)
      pkt_ref_dec(sm->sm_data);
    break;

  case SMT_START:
    if(sm->sm_data)
      streaming_start_unref(sm->sm_data);
    break;

  case SMT_GRACE:
  case SMT_STOP:
  case SMT_EXIT:
  case SMT_SERVICE_STATUS:
  case SMT_NOSTART:
  case SMT_NOSTART_WARN:
  case SMT_SPEED:
    break;

  case SMT_SKIP:
  case SMT_SIGNAL_STATUS:
  case SMT_DESCRAMBLE_INFO:
#if ENABLE_TIMESHIFT
  case SMT_TIMESHIFT_STATUS:
#endif
    free(sm->sm_data);
    break;

  case SMT_MPEGTS:
    if(sm->sm_data)
      pktbuf_ref_dec(sm->sm_data);
    break;

  default:
    abort();
  }
  memoryinfo_free(&streaming_msg_memoryinfo, sizeof(*sm));
  free(sm);
}
Exemple #7
0
void
streaming_msg_free(streaming_message_t *sm)
{
  switch(sm->sm_type) {
  case SMT_PACKET:
    if(sm->sm_data)
      pkt_ref_dec(sm->sm_data);
    break;

  case SMT_START:
    if(sm->sm_data)
      streaming_start_unref(sm->sm_data);
    break;

  case SMT_STOP:
  case SMT_EXIT:
  case SMT_SERVICE_STATUS:
  case SMT_NOSTART:
  case SMT_SPEED:
    break;

  case SMT_SKIP:
  case SMT_SIGNAL_STATUS:
#if ENABLE_TIMESHIFT
  case SMT_TIMESHIFT_STATUS:
#endif
    free(sm->sm_data);
    break;

  case SMT_MPEGTS:
    if(sm->sm_data)
      pktbuf_ref_dec(sm->sm_data);
    break;

  default:
    abort();
  }
  free(sm);
}