Ejemplo n.º 1
0
void stream_deinit(struct _libstream_stream* stream) {
  stream_close(stream);
  sem_destroy(&stream->download);
  curl_easy_cleanup(stream->handle);
  queue_deinit(&stream->buffer);
  return;
}
Ejemplo n.º 2
0
/*!
 * Deinitializes a subject.
 *
 * \param this_ptr - A pointer to the subject.
 */
void subject_deinit(subject_t *this_ptr)
{
    if (this_ptr != NULL) {
        queue_deinit(&this_ptr->queue);
        observer_deinit(&this_ptr->observer);
    }
}
Ejemplo n.º 3
0
int server(int initfd) {
  // Create the shared queue
  queue_t q;
  int res;

  queue_init(&q, QUEUE_SIZE);

  // Create the consumer threads
  pthread_t cthreads[CONSUMERS_COUNT];
  unsigned i;
  for (i = 0; i < CONSUMERS_COUNT; i++) {
    res = pthread_create(&cthreads[i], NULL, &consumer_thread, &q);
    assert(res == 0);
  }

  // Create the listening socket
  int accsock = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, 0);
  assert(accsock >= 0);

  int true = 1;
  res = setsockopt(accsock, SOL_SOCKET, SO_REUSEADDR, &true, sizeof(true));
  assert(res == 0);

  struct sockaddr_in addr;
  memset(&addr, 0, sizeof(addr));
  addr.sin_family = AF_INET;
  addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
  addr.sin_port = htons(LISTEN_PORT);

  res = bind(accsock, (struct sockaddr*)&addr, sizeof(addr));
  assert(res == 0);

  res = listen(accsock, BACKLOG_SIZE);
  assert(res == 0);

  close(initfd);

  fprintf(stderr, "Server initialized\n");

  serve(&q, accsock);

  for (i = 0; i < CONSUMERS_COUNT; i++) {
    res = pthread_join(cthreads[i], NULL);
    assert(res == 0);
  }

  queue_deinit(&q);
  return 0;
}
Ejemplo n.º 4
0
static void ts_buf_deinit(void)
{
	queue_deinit(&tsp_pool_cb);
	queue_deinit(&tsp_queue_cb);
}
Ejemplo n.º 5
0
uint32_t stream_init(struct _libstream_stream *stream, const char* url,
    uint32_t bufsize) {
  int ret;
  memset(stream, 0, sizeof(struct _libstream_stream));
  stream->url = url;
  // Create FIFO queue.
#ifdef DEBUG
  assert(bufsize > BUFSIZE_MIN);
#endif
  ret = queue_init(&stream->buffer, bufsize);
  if (ret == false) {
    ret = LIBSTREAM_MEMORY;
    goto _stream_init_err0;
  }

  // Set up curl handles.
  stream->handle = curl_easy_init();
  if (stream->handle == NULL) {
    ret = LIBSTREAM_INTERNAL;
    goto _stream_init_err1;
  }

  // Set the fixed options.
  // User config handled in _stream_setopt.
#ifdef DEBUG
  ret = curl_easy_setopt(stream->handle, CURLOPT_ERRORBUFFER,
      stream->error_);
  if (ret != CURLE_OK) {
    ret = LIBSTREAM_CURL_ERR(ret);
    goto _stream_init_err2;
  }
#endif

  ret = curl_easy_setopt(stream->handle, CURLOPT_URL, url);
  if (ret != CURLE_OK) {
    ret = LIBSTREAM_CURL_ERR(ret);
    goto _stream_init_err2;
  }

  ret = curl_easy_setopt(stream->handle, CURLOPT_WRITEFUNCTION,
      _libstream_bgstream_write);
  if (ret != CURLE_OK) {
    ret = LIBSTREAM_CURL_ERR(ret);
    goto _stream_init_err2;
  }

  ret = curl_easy_setopt(stream->handle, CURLOPT_WRITEDATA, stream);
  if (ret != CURLE_OK) {
    ret = LIBSTREAM_CURL_ERR(ret);
    goto _stream_init_err2;
  }

  // Set up and run background thread.
  stream->running = 0;
  stream->err = LIBSTREAM_INTERNAL;
  // Initialize the semaphore to 0 to block the new thread immediately.
  ret = sem_init(&stream->download, false, 0);
  if (ret < 0) {
    ret = LIBSTREAM_INTERNAL;
    goto _stream_init_err2;
  }
  if (pthread_create(&stream->bg_thread, NULL,
        &_libstream_bgstream_main, stream) != 0) {
    ret = LIBSTREAM_INTERNAL;
    goto _stream_init_err2;
  }
  while(!stream->running) {
    pthread_yield();
  }
  sem_post(&stream->download);

  return LIBSTREAM_OK;
  // Error handling.
_stream_init_err2:
  curl_easy_cleanup(stream->handle);
_stream_init_err1:
  queue_deinit(&stream->buffer);
_stream_init_err0:
  return ret;
}
Ejemplo n.º 6
0
void atwilc_debugfs_remove(void)
{
	queue_deinit(&g_dumpqueue);

	debugfs_remove_recursive(atwilc_dir);
}
OMX_ERRORTYPE camera_video_port_Destructor(omx_base_PortType *openmaxStandPort)
{
    omx_base_camera_video_PortType *omx_base_filter_Private;
    omx_base_filter_Private = (omx_base_camera_video_PortType *)openmaxStandPort;

#ifndef _OPENMAX_V1_2_

    if(openmaxStandPort->sPortParam.format.image.cMIMEType)
    {
        free(openmaxStandPort->sPortParam.format.image.cMIMEType);
        openmaxStandPort->sPortParam.format.image.cMIMEType = NULL;
    }

    if(openmaxStandPort->sPortParam.format.video.cMIMEType)
    {
        free(openmaxStandPort->sPortParam.format.video.cMIMEType);
        openmaxStandPort->sPortParam.format.video.cMIMEType = NULL;
    }

#endif

    if(omx_base_filter_Private->pAFStatusL)
    {
        free(omx_base_filter_Private->pAFStatusL);
        omx_base_filter_Private->pAFStatusL = NULL;
    }

    if(omx_base_filter_Private->pHdrParam)
    {
        free(omx_base_filter_Private->pHdrParam);
        omx_base_filter_Private->pHdrParam = NULL;
    }

    if(omx_base_filter_Private->pAFRegionL)
    {
        free(omx_base_filter_Private->pAFRegionL);
        omx_base_filter_Private->pAFRegionL = NULL;
    }

    if(omx_base_filter_Private->pAFStatus)
    {
        free(omx_base_filter_Private->pAFStatus);
        omx_base_filter_Private->pAFStatus = NULL;
    }

    if(omx_base_filter_Private->pAFRegion)
    {
        free(omx_base_filter_Private->pAFRegion);
        omx_base_filter_Private->pAFRegion = NULL;
    }

    if(omx_base_filter_Private->pExpVal)
    {
        free(omx_base_filter_Private->pExpVal);
        omx_base_filter_Private->pExpVal = NULL;
    }

    if(omx_base_filter_Private->pSat)
    {
        free(omx_base_filter_Private->pSat);
        omx_base_filter_Private->pSat = NULL;
    }

    if(omx_base_filter_Private->pBright)
    {
        free(omx_base_filter_Private->pBright);
        omx_base_filter_Private->pBright = NULL;
    }

    if(omx_base_filter_Private->act_agc)
    {
        free(omx_base_filter_Private->act_agc);
        omx_base_filter_Private->act_agc = NULL;
    }

    if(omx_base_filter_Private->act_flashstrobe)
    {
        free(omx_base_filter_Private->act_flashstrobe);
        omx_base_filter_Private->act_flashstrobe = NULL;
    }

    if(omx_base_filter_Private->pContrast)
    {
        free(omx_base_filter_Private->pContrast);
        omx_base_filter_Private->pContrast = NULL;
    }

    if(omx_base_filter_Private->pExpType)
    {
        free(omx_base_filter_Private->pExpType);
        omx_base_filter_Private->pExpType = NULL;
    }

    if(omx_base_filter_Private->pWBType)
    {
        free(omx_base_filter_Private->pWBType);
        omx_base_filter_Private->pWBType = NULL;
    }

    if(omx_base_filter_Private->pOpticZoomType)
    {
        free(omx_base_filter_Private->pOpticZoomType);
        omx_base_filter_Private->pOpticZoomType = NULL;
    }

    if(omx_base_filter_Private->pImageMirror)
    {
        free(omx_base_filter_Private->pImageMirror);
        omx_base_filter_Private->pImageMirror = NULL;
    }

    if(omx_base_filter_Private->pImageFilter)
    {
        free(omx_base_filter_Private->pImageFilter);
        omx_base_filter_Private->pImageFilter = NULL;
    }

    if(omx_base_filter_Private->pColorFix)
    {
        free(omx_base_filter_Private->pColorFix);
        omx_base_filter_Private->pColorFix = NULL;
    }

    if(omx_base_filter_Private->pColorEft)
    {
        free(omx_base_filter_Private->pColorEft);
        omx_base_filter_Private->pColorEft = NULL;
    }

    if(omx_base_filter_Private->pSensorMode)
    {
        free(omx_base_filter_Private->pSensorMode);
        omx_base_filter_Private->pSensorMode = NULL;
    }

    if(omx_base_filter_Private->pFocusType)
    {
        free(omx_base_filter_Private->pFocusType);
        omx_base_filter_Private->pFocusType =  NULL;
    }

    if(omx_base_filter_Private->pCapMode)
    {
        free(omx_base_filter_Private->pCapMode);
        omx_base_filter_Private->pCapMode = NULL;
    }

    if(omx_base_filter_Private->pBlitComp)
    {
        free(omx_base_filter_Private->pBlitComp);
        omx_base_filter_Private->pBlitComp = NULL;
    }

    if(omx_base_filter_Private->pFlashType)
    {
        free(omx_base_filter_Private->pFlashType);
        omx_base_filter_Private->pFlashType = NULL;
    }


    if(omx_base_filter_Private->pGamma)
    {
        free(omx_base_filter_Private->pGamma);
        omx_base_filter_Private->pGamma = NULL;
    }

    if(omx_base_filter_Private->pAF_Dis)
    {
        free(omx_base_filter_Private->pAF_Dis);
        omx_base_filter_Private->pAF_Dis = NULL;
    }

    if(omx_base_filter_Private->pSharp_level)
    {
        free(omx_base_filter_Private->pSharp_level);
        omx_base_filter_Private->pSharp_level = NULL;
    }

    if(omx_base_filter_Private->pNs_level)
    {
        free(omx_base_filter_Private->pNs_level);
        omx_base_filter_Private->pNs_level = NULL;
    }

    if(omx_base_filter_Private->pFlicktype)
    {
        free(omx_base_filter_Private->pFlicktype);
        omx_base_filter_Private->pFlicktype = NULL;
    }

    if(omx_base_filter_Private->pCapExtMode)
    {
        free(omx_base_filter_Private->pCapExtMode);
        omx_base_filter_Private->pCapExtMode = NULL;
    }

    if(omx_base_filter_Private->omx_camera)
    {
        if(omx_base_filter_Private->omx_camera->pCameraPrivate && omx_base_filter_Private->bCopy == OMX_FALSE)
        {
            OMXDBUG(OMXDBUG_VERB, "%s,%d\n", __FILE__, __LINE__);
            omx_base_filter_Private->omx_camera->omx_camera_close(omx_base_filter_Private->omx_camera);

            if(omx_base_filter_Private->nSensorType == 0)
            {
                if(omx_base_filter_Private->camera_isp_base_Destructor)
                { omx_base_filter_Private->camera_isp_base_Destructor(omx_base_filter_Private->omx_camera); }
            }
            else
            {
                if(omx_base_filter_Private->camera_direct_base_Destructor)
                { omx_base_filter_Private->camera_direct_base_Destructor(omx_base_filter_Private->omx_camera); }
            }
        }

        free(omx_base_filter_Private->omx_camera);
        omx_base_filter_Private->omx_camera = NULL;
    }

    if(omx_base_filter_Private->queue_dq)
    {
        queue_deinit(omx_base_filter_Private->queue_dq);
        free(omx_base_filter_Private->queue_dq);
        omx_base_filter_Private->queue_dq = NULL;
    }

#if 0

    if(omx_base_filter_Private->dMoudleIsp)
    {
        dlclose(omx_base_filter_Private->dMoudleIsp);
        omx_base_filter_Private->dMoudleIsp = NULL;
    }

    if(omx_base_filter_Private->pBufferQueueInDriver)
    {
        queue_deinit(omx_base_filter_Private->pBufferQueueInDriver);
        free(omx_base_filter_Private->pBufferQueueInDriver);
        omx_base_filter_Private->pBufferQueueInDriver = NULL;
    }

#endif
    base_video_port_Destructor(openmaxStandPort);

    return OMX_ErrorNone;
}