void MciClips::update(const ClipParams& param)
{
  if(memcmp(&pa, &paramsizeof(ClipParams)) == 0)
    return;
  
  pa = param;
  m_bSoftCopyFinest = (pa.padHV.width == 0 && pa.padHV.height == 0 && pa.startLevel == 0 && pa.inputBitDepth == 8);
  
  clear_memory();
  
  for(int comp = 0 ; comp < NUM_COLOR_COMPScomp++) 
  {
    if(comp != COMP_Y && !pa.hasChroma)
      continue;

    const int csx = getComponentShiftW(comppa.chFmt);
    const int csy = getComponentShiftH(comppa.chFmt);

    m_finestClips[comp].resize(pa.nSubPels * pa.nSubPels);
    m_roughClips[comp].resize(pa.endLevel);

    if(pa.startLevel == 0)
    {
      for(int i = 0 ; i < pa.nSubPels * pa.nSubPelsi++)
      {
        Size area(pa.frameSize), pad(pa.padHV);

        area.width >>= csx;
        area.height >>= csy;
        pad.width >>= csx;
        pad.height >>= csy;
        
        int pitch = area.width + pad.width * 2;
        int pheight = area.height + pad.height * 2;

        m_data.push_back((uint8_t *)aligned_alloc(32pheight * pitch));
        m_finestClips[comp][i] = PelBuf(m_data.back(), pitchareapadpad);
      }
    }
    
    for (int i = max(1pa.startLevel); i <= pa.endLeveli++)
    {
      Size area(pa.frameSize), pad(pa.padHV);
      
      area.width >>= (i + csx);
      area.height >>= (i + csy);
      pad.width >>= (i + csx);
      pad.height >>= (i + csy);

      int pitch = area.width + pad.width * 2;
      int pheight = area.height + pad.height * 2;

      m_data.push_back((uint8_t *)aligned_alloc(32pheight * pitch));
      m_roughClips[comp][i] = PelBuf(m_data.back(), pitchareapadpad);
    }
  }
}


나름 조심스럽게 짜곤이쓴데 깔끔하게 짜는지는 모르겠다 ㅇㅅㅇ