コード例 #1
0
void CDVDVideoCodecAmlogic::Reset(void)
{
  while (m_queue_depth)
    FrameQueuePop();

  m_Codec->Reset();
  m_mpeg2_sequence_pts = 0;
}
コード例 #2
0
ファイル: DVDVideoCodecAmlogic.cpp プロジェクト: bild/xbmc
void CDVDVideoCodecAmlogic::Dispose(void)
{
  if (m_Codec)
    m_Codec->CloseDecoder(), m_Codec = NULL;
  if (m_videobuffer.iFlags)
    m_videobuffer.iFlags = 0;
  if (m_mpeg2_sequence)
    delete m_mpeg2_sequence, m_mpeg2_sequence = NULL;

  while (m_queue_depth)
    FrameQueuePop();
}
コード例 #3
0
ファイル: DVDVideoCodecAmlogic.cpp プロジェクト: innbox/xbmc
void CDVDVideoCodecAmlogic::Dispose(void)
{
  if (m_Codec)
    m_Codec->CloseDecoder(), m_Codec = NULL;
  if (m_videobuffer.iFlags)
    m_videobuffer.iFlags = 0;
  if (m_mpeg2_sequence)
    delete m_mpeg2_sequence, m_mpeg2_sequence = NULL;

  while (m_queue_depth)
    FrameQueuePop();

  // let thumbgen jobs resume.
  CJobManager::GetInstance().UnPause(kJobTypeMediaFlags);
}
コード例 #4
0
void CDVDVideoCodecAmlogic::Dispose(void)
{
  {
    CSingleLock lock(m_secure);
    for (std::set<CDVDAmlogicInfo*>::iterator it = m_inflight.begin(); it != m_inflight.end(); ++it)
      (*it)->invalidate();
  }

  if (m_Codec)
    m_Codec->CloseDecoder(), delete m_Codec, m_Codec = NULL;
  if (m_videobuffer.iFlags)
    m_videobuffer.iFlags = 0;
  if (m_mpeg2_sequence)
    delete m_mpeg2_sequence, m_mpeg2_sequence = NULL;

  if (m_bitstream)
    delete m_bitstream, m_bitstream = NULL;

  if (m_bitparser)
    delete m_bitparser, m_bitparser = NULL;

  while (m_queue_depth)
    FrameQueuePop();
}