Exemplo n.º 1
0
/** The Destructor
 */
OMX_ERRORTYPE omx_clocksrc_component_Destructor(OMX_COMPONENTTYPE *openmaxStandComp) {
  omx_clocksrc_component_PrivateType* omx_clocksrc_component_Private = openmaxStandComp->pComponentPrivate;
  OMX_U32 i;

  omx_clocksrc_component_Private->sClockState.eState = OMX_TIME_ClockStateMax;

  /*Deinitialize and free message semaphore*/
  if(omx_clocksrc_component_Private->clockEventSem) {
    tsem_deinit(omx_clocksrc_component_Private->clockEventSem);
    free(omx_clocksrc_component_Private->clockEventSem);
    omx_clocksrc_component_Private->clockEventSem=NULL;
  }
  if(omx_clocksrc_component_Private->clockEventCompleteSem) {
    tsem_deinit(omx_clocksrc_component_Private->clockEventCompleteSem);
    free(omx_clocksrc_component_Private->clockEventCompleteSem);
    omx_clocksrc_component_Private->clockEventCompleteSem=NULL;
  }

  /* frees port/s */
  if (omx_clocksrc_component_Private->ports) {
    for (i=0; i < omx_clocksrc_component_Private->sPortTypesParam[OMX_PortDomainOther].nPorts; i++) {
      if(omx_clocksrc_component_Private->ports[i])
        omx_clocksrc_component_Private->ports[i]->PortDestructor(omx_clocksrc_component_Private->ports[i]);
    }
    free(omx_clocksrc_component_Private->ports);
    omx_clocksrc_component_Private->ports=NULL;
  }

  return omx_base_source_Destructor(openmaxStandComp);
}
/* The Destructor */
OMX_ERRORTYPE omx_parser3gp_component_Destructor(OMX_COMPONENTTYPE *openmaxStandComp) {
  omx_parser3gp_component_PrivateType* omx_parser3gp_component_Private = openmaxStandComp->pComponentPrivate;
  OMX_U32 i;

  if(omx_parser3gp_component_Private->avformatSyncSem) {
    tsem_deinit(omx_parser3gp_component_Private->avformatSyncSem);
    free(omx_parser3gp_component_Private->avformatSyncSem);
    omx_parser3gp_component_Private->avformatSyncSem=NULL;
  }

  if(omx_parser3gp_component_Private->sInputFileName) {
    free(omx_parser3gp_component_Private->sInputFileName);
    omx_parser3gp_component_Private->sInputFileName = NULL;
  }

  if(omx_parser3gp_component_Private->pTmpOutputBuffer) {
    free(omx_parser3gp_component_Private->pTmpOutputBuffer);
  }

  /* frees port/s */
  if (omx_parser3gp_component_Private->ports) {
    for (i=0; i < (omx_parser3gp_component_Private->sPortTypesParam[OMX_PortDomainAudio].nPorts  +
                   omx_parser3gp_component_Private->sPortTypesParam[OMX_PortDomainVideo].nPorts +
                   omx_parser3gp_component_Private->sPortTypesParam[OMX_PortDomainOther].nPorts ); i++) {
      if(omx_parser3gp_component_Private->ports[i])
        omx_parser3gp_component_Private->ports[i]->PortDestructor(omx_parser3gp_component_Private->ports[i]);
    }
    free(omx_parser3gp_component_Private->ports);
    omx_parser3gp_component_Private->ports=NULL;
  }

  noParser3gpInstance--;
  DEBUG(DEB_LEV_FUNCTION_NAME,"In %s \n",__func__);
  return omx_base_source_Destructor(openmaxStandComp);
}
/** The Destructor 
 */
OMX_ERRORTYPE omx_videosrc_component_Destructor(OMX_COMPONENTTYPE *openmaxStandComp) {
  omx_videosrc_component_PrivateType* omx_videosrc_component_Private = openmaxStandComp->pComponentPrivate;
  OMX_ERRORTYPE err = OMX_ErrorNone;  
  OMX_U32 i;
  
  if(omx_videosrc_component_Private->videoSyncSem) {
    tsem_deinit(omx_videosrc_component_Private->videoSyncSem);
    free(omx_videosrc_component_Private->videoSyncSem);
    omx_videosrc_component_Private->videoSyncSem=NULL;
  }

  err = uninit_device(omx_videosrc_component_Private);
 
  if(omx_videosrc_component_Private->deviceHandle != -1) {
    if(-1 == close(omx_videosrc_component_Private->deviceHandle)) {
      DEBUG(DEB_LEV_ERR, "In %s Closing video capture device failed \n",__func__);
    }
    omx_videosrc_component_Private->deviceHandle = -1;
  }

  /* frees port/s */
  if (omx_videosrc_component_Private->ports) {
    for (i=0; i < omx_videosrc_component_Private->sPortTypesParam[OMX_PortDomainVideo].nPorts; i++) {
      if(omx_videosrc_component_Private->ports[i])
        omx_videosrc_component_Private->ports[i]->PortDestructor(omx_videosrc_component_Private->ports[i]);
    }
    free(omx_videosrc_component_Private->ports);
    omx_videosrc_component_Private->ports=NULL;
  }

  noViderSrcInstance--;
  DEBUG(DEB_LEV_FUNCTION_NAME,"In %s \n",__func__);

  return omx_base_source_Destructor(openmaxStandComp);
}
/** The destructor
  */
OMX_ERRORTYPE omx_audio_capturer_component_Destructor(
  OMX_COMPONENTTYPE *pComponent)
{
  omx_audio_capturer_component_PrivateType* pPrivate = pComponent->pComponentPrivate;
  OMX_U32 i;

  DEBUG(DEB_LEV_FUNCTION_NAME, "%s\n", __func__);

  /* Free port(s) */
  if (pPrivate->ports) {
    for (i=0; i < pPrivate->sPortTypesParam[OMX_PortDomainAudio].nPorts; i++) {
      if(pPrivate->ports[i])
        pPrivate->ports[i]->PortDestructor(pPrivate->ports[i]);
    }
    free(pPrivate->ports);
    pPrivate->ports=NULL;
  }

  pPrivate->BufferMgmtCallback = omx_audio_capturer_component_BufferMgmtCallback;
  omx_base_source_Destructor(pComponent);

  nComponentInstances--;

  return OMX_ErrorNone;
}