Esempio n. 1
0
int32_t ExpandNalUnitList (PAccessUnit* ppAu, const int32_t kiOrgSize, const int32_t kiExpSize) {
  if (kiExpSize <= kiOrgSize)
    return 1;
  else {
    PAccessUnit pTmp = NULL;
    int32_t iIdx = 0;

    if (MemInitNalList (&pTmp, kiExpSize))	// request new list with expanding
      return 1;

    do {
      memcpy (pTmp->pNalUnitsList[iIdx], (*ppAu)->pNalUnitsList[iIdx], sizeof (SNalUnit)); //confirmed_safe_unsafe_usage
      ++ iIdx;
    } while (iIdx < kiOrgSize);

    pTmp->uiCountUnitsNum	= kiExpSize;
    pTmp->uiAvailUnitsNum	= (*ppAu)->uiAvailUnitsNum;
    pTmp->uiActualUnitsNum	= (*ppAu)->uiActualUnitsNum;
    pTmp->uiEndPos		    = (*ppAu)->uiEndPos;
    pTmp->bCompletedAuFlag	= (*ppAu)->bCompletedAuFlag;

    MemFreeNalList (ppAu);	// free old list
    *ppAu = pTmp;
    return 0;
  }
}
Esempio n. 2
0
int32_t ExpandNalUnitList (PAccessUnit* ppAu, const int32_t kiOrgSize, const int32_t kiExpSize, CMemoryAlign* pMa) {
  if (kiExpSize <= kiOrgSize)
    return ERR_INFO_INVALID_PARAM;
  else {
    PAccessUnit pTmp = NULL;
    int32_t iIdx = 0;
    int32_t iRet = ERR_NONE;
    if ((iRet = MemInitNalList (&pTmp, kiExpSize, pMa)) != ERR_NONE) // request new list with expanding
      return iRet;

    do {
      memcpy (pTmp->pNalUnitsList[iIdx], (*ppAu)->pNalUnitsList[iIdx], sizeof (SNalUnit)); //confirmed_safe_unsafe_usage
      ++ iIdx;
    } while (iIdx < kiOrgSize);

    pTmp->uiCountUnitsNum       = kiExpSize;
    pTmp->uiAvailUnitsNum       = (*ppAu)->uiAvailUnitsNum;
    pTmp->uiActualUnitsNum      = (*ppAu)->uiActualUnitsNum;
    pTmp->uiEndPos              = (*ppAu)->uiEndPos;
    pTmp->bCompletedAuFlag      = (*ppAu)->bCompletedAuFlag;

    MemFreeNalList (ppAu, pMa); // free old list
    *ppAu = pTmp;
    return ERR_NONE;
  }
}