亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gopdecoder.cpp

?? JMVM MPEG MVC/3DAV 測試平臺(tái) 國際通用標(biāo)準(zhǔn)
?? CPP
?? 第 1 頁 / 共 5 頁
字號(hào):
/*
********************************************************************************

NOTE - One of the two copyright statements below may be chosen
       that applies for the software.

********************************************************************************

This software module was originally developed by

Heiko Schwarz    (Fraunhofer HHI),
Tobias Hinz      (Fraunhofer HHI),
Karsten Suehring (Fraunhofer HHI)

in the course of development of the ISO/IEC 14496-10:2005 Amd.1 (Scalable Video
Coding) for reference purposes and its performance may not have been optimized.
This software module is an implementation of one or more tools as specified by
the ISO/IEC 14496-10:2005 Amd.1 (Scalable Video Coding).

Those intending to use this software module in products are advised that its
use may infringe existing patents. ISO/IEC have no liability for use of this
software module or modifications thereof.

Assurance that the originally developed software module can be used
(1) in the ISO/IEC 14496-10:2005 Amd.1 (Scalable Video Coding) once the
ISO/IEC 14496-10:2005 Amd.1 (Scalable Video Coding) has been adopted; and
(2) to develop the ISO/IEC 14496-10:2005 Amd.1 (Scalable Video Coding): 

To the extent that Fraunhofer HHI owns patent rights that would be required to
make, use, or sell the originally developed software module or portions thereof
included in the ISO/IEC 14496-10:2005 Amd.1 (Scalable Video Coding) in a
conforming product, Fraunhofer HHI will assure the ISO/IEC that it is willing
to negotiate licenses under reasonable and non-discriminatory terms and
conditions with applicants throughout the world.

Fraunhofer HHI retains full right to modify and use the code for its own
purpose, assign or donate the code to a third party and to inhibit third
parties from using the code for products that do not conform to MPEG-related
ITU Recommendations and/or ISO/IEC International Standards. 

This copyright notice must be included in all copies or derivative works.
Copyright (c) ISO/IEC 2005. 

********************************************************************************

COPYRIGHT AND WARRANTY INFORMATION

Copyright 2005, International Telecommunications Union, Geneva

The Fraunhofer HHI hereby donate this source code to the ITU, with the following
understanding:
    1. Fraunhofer HHI retain the right to do whatever they wish with the
       contributed source code, without limit.
    2. Fraunhofer HHI retain full patent rights (if any exist) in the technical
       content of techniques and algorithms herein.
    3. The ITU shall make this code available to anyone, free of license or
       royalty fees.

DISCLAIMER OF WARRANTY

These software programs are available to the user without any license fee or
royalty on an "as is" basis. The ITU disclaims any and all warranties, whether
express, implied, or statutory, including any implied warranties of
merchantability or of fitness for a particular purpose. In no event shall the
contributor or the ITU be liable for any incidental, punitive, or consequential
damages of any kind whatsoever arising from the use of these programs.

This disclaimer of warranty extends to the user of these programs and user's
customers, employees, agents, transferees, successors, and assigns.

The ITU does not represent or warrant that the programs furnished hereunder are
free of infringement of any third-party patents. Commercial implementations of
ITU-T Recommendations, including shareware, may be subject to royalty fees to
patent holders. Information regarding the ITU-T patent policy is available from 
the ITU Web site at http://www.itu.int.

THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE ITU-T PATENT POLICY.

********************************************************************************
*/




#include "H264AVCDecoderLib.h"
#include "GOPDecoder.h"
#include "SliceReader.h"
#include "SliceDecoder.h"
#include "FGSSubbandDecoder.h"
#include "CreaterH264AVCDecoder.h"
#include "ControlMngH264AVCDecoder.h"
#include "H264AVCCommonLib/TraceFile.h"
#include <math.h>

#include "H264AVCCommonLib/CFMO.h"


H264AVC_NAMESPACE_BEGIN
/*

__inline Void printSpaces( UInt uiNum )
{
  while( uiNum-- ) printf(" ");
}




//////////////////////////////////////////////////////////////////////////
// DPB UNIT
//////////////////////////////////////////////////////////////////////////
DPBUnit::DPBUnit()
: m_iPoc                ( MSYS_INT_MIN )
, m_uiFrameNum          ( MSYS_UINT_MAX )
, m_uiTemporalLevel     ( MSYS_UINT_MAX )
, m_bKeyPicture         ( false )
, m_bExisting           ( false )
, m_bNeededForReference ( false )
, m_bOutputted          ( false )
, m_bBaseRepresentation ( false )
, m_pcFrame             ( 0 )
, m_cControlData        ()
, m_bConstrainedIntraPred( false )
//JVT-T054{
, m_uiQualityLevel      ( 0 )
//JVT-T054}
{
}



DPBUnit::~DPBUnit()
{
  MbDataCtrl*   pcMbDataCtrl  = m_cControlData.getMbDataCtrl  ();
  SliceHeader*  pcSliceHeader = m_cControlData.getSliceHeader ();
  //m_cControlData.getMbDataCtrl()->uninitFgsBQData(); 
  if( pcMbDataCtrl )
  {
//JVT-T054{
    m_cControlData.getMbDataCtrl()->uninitFgsBQData();
//JVT-T054}
    pcMbDataCtrl->uninit();
  }
  delete pcMbDataCtrl;
  delete pcSliceHeader;

  if( m_pcFrame )
  {
    m_pcFrame->uninit();
  }
  delete m_pcFrame;
}



ErrVal
DPBUnit::create( DPBUnit*&                    rpcDPBUnit,
                 YuvBufferCtrl&               rcYuvBufferCtrl,
                 const SequenceParameterSet&  rcSPS )
{
  rpcDPBUnit = new DPBUnit();
  ROF( rpcDPBUnit );

  MbDataCtrl* pcMbDataCtrl = 0;
  ROFS( ( rpcDPBUnit->m_pcFrame    = new IntFrame  ( rcYuvBufferCtrl, rcYuvBufferCtrl ) ) );
  ROFS( ( pcMbDataCtrl             = new MbDataCtrl()                                   ) );
  RNOK (   rpcDPBUnit->m_pcFrame    ->init          ()               );
           rpcDPBUnit->m_pcFrame    ->setDPBUnit    ( rpcDPBUnit   );
  RNOK (   pcMbDataCtrl             ->init          ( rcSPS        ) );
  RNOK (   rpcDPBUnit->m_cControlData.setMbDataCtrl ( pcMbDataCtrl ) );
  RNOK  (  rpcDPBUnit->m_cControlData.getMbDataCtrl()->initFgsBQData   ( pcMbDataCtrl->getSize() ) );

  return Err::m_nOK;
}



ErrVal
DPBUnit::destroy()
{
  delete this;
  return Err::m_nOK;
}


ErrVal
DPBUnit::init( Int  iPoc,
               UInt uiFrameNum,
               UInt uiTemporalLevel,
               Bool bKeyPicture,
               Bool bNeededForReference,
               Bool bConstrainedIPred,
               UInt uiQualityLevel) //JVT-T054
{
  m_iPoc                = iPoc;
  m_uiFrameNum          = uiFrameNum;
  m_uiTemporalLevel     = uiTemporalLevel;
  m_bKeyPicture         = bKeyPicture;
  m_bExisting           = true;
  m_bNeededForReference = bNeededForReference;
  m_bOutputted          = false;
  m_bBaseRepresentation = false;
  m_bConstrainedIntraPred = bConstrainedIPred;
//JVT-T054{
  m_uiQualityLevel      = uiQualityLevel;
//JVT-T054}
  return Err::m_nOK;
}



ErrVal
DPBUnit::initNonEx( Int   iPoc,
                    UInt  uiFrameNum )
{
  m_iPoc                = iPoc;
  m_uiFrameNum          = uiFrameNum;
  m_uiTemporalLevel     = MSYS_UINT_MAX;
  m_bKeyPicture         = false;
  m_bExisting           = false;
  m_bNeededForReference = true;
  m_bOutputted          = false;
  m_bBaseRepresentation = false;
  m_bConstrainedIntraPred = false;
  return Err::m_nOK;
}



ErrVal
DPBUnit::initBase( DPBUnit&   rcDPBUnit,
                   IntFrame*  pcFrameBaseRep )
{
  ROT( rcDPBUnit.m_bBaseRepresentation );
  m_iPoc                = rcDPBUnit.m_iPoc;
  m_uiFrameNum          = rcDPBUnit.m_uiFrameNum;
  m_uiTemporalLevel     = rcDPBUnit.m_uiTemporalLevel;
  m_bKeyPicture         = rcDPBUnit.m_bKeyPicture;
  m_bExisting           = rcDPBUnit.m_bExisting;
  m_bNeededForReference = rcDPBUnit.m_bNeededForReference;
  m_bOutputted          = rcDPBUnit.m_bOutputted;
  m_bConstrainedIntraPred = rcDPBUnit.m_bConstrainedIntraPred;
  m_bBaseRepresentation = true;
//JVT-T054{
  m_uiQualityLevel      = rcDPBUnit.m_uiQualityLevel;
//JVT-T054}
  RNOK( m_pcFrame->copyAll( pcFrameBaseRep ) );
  m_pcFrame->setPOC( m_iPoc );
  return Err::m_nOK;
}



ErrVal
DPBUnit::uninit()
{
  m_iPoc                = MSYS_INT_MIN;
  m_uiFrameNum          = MSYS_UINT_MAX;
  m_uiTemporalLevel     = MSYS_UINT_MAX;
  m_bKeyPicture         = false;
  m_bExisting           = false;
  m_bNeededForReference = false;
  m_bOutputted          = false;
  m_bBaseRepresentation = false;
  m_bConstrainedIntraPred = false;
  return Err::m_nOK;
}



ErrVal
DPBUnit::markNonRef()
{
  ROF( m_bNeededForReference );
  m_bNeededForReference = false;
  return Err::m_nOK;
}



ErrVal
DPBUnit::markOutputted()
{
  ROT( m_bOutputted );
  m_bOutputted = true;
  return Err::m_nOK;
}





//////////////////////////////////////////////////////////////////////////
// DECODED PICTURE BUFFER
//////////////////////////////////////////////////////////////////////////
DecodedPicBuffer::DecodedPicBuffer()
: m_bInitDone         ( false )
, m_pcYuvBufferCtrl   ( 0 )
, m_uiNumRefFrames    ( 0 )
, m_uiMaxFrameNum     ( 0 )
, m_uiLastRefFrameNum ( MSYS_UINT_MAX )
, m_pcCurrDPBUnit     ( 0 )
{
}



DecodedPicBuffer::~DecodedPicBuffer()
{
}



ErrVal
DecodedPicBuffer::create( DecodedPicBuffer*& rpcDecodedPicBuffer )
{
  rpcDecodedPicBuffer = new DecodedPicBuffer;
  ROT( NULL == rpcDecodedPicBuffer );
  return Err::m_nOK;
}

//JVT-T054{
ErrVal
DecodedPicBuffer::CreateDPBUnit(DPBUnit *pcDPBUnit, const SequenceParameterSet&  rcSPS )
{
  RNOK( DPBUnit::create( pcDPBUnit, *m_pcYuvBufferCtrl, rcSPS ) );
  return Err::m_nOK;
}
//JVT-T054}

ErrVal
DecodedPicBuffer::destroy()
{
  ROT( m_bInitDone );
  delete this;
  return Err::m_nOK;
}



ErrVal
DecodedPicBuffer::init( YuvBufferCtrl* pcYuvBufferCtrl,
                        UInt           uiLayer )
{
  ROT( m_bInitDone );
  ROF( pcYuvBufferCtrl );

  m_pcYuvBufferCtrl   = pcYuvBufferCtrl;
  m_uiNumRefFrames    = 0;
  m_uiMaxFrameNum     = 0;
  m_uiLastRefFrameNum = MSYS_UINT_MAX;
  m_uiLayer           = uiLayer;
  m_bInitDone         = true;
  
  return Err::m_nOK;
}



__inline UInt downround2powerof2( UInt i ) { UInt r = 1; for( ; (UInt)( 1 << r ) <= i; r++ ); return ( 1 << ( r - 1 ) ); }



ErrVal
DecodedPicBuffer::initSPS( const SequenceParameterSet& rcSPS )
{
  ROF( m_bInitDone );
	UInt  uiMaxPicsInDPB  = downround2powerof2( rcSPS.getMaxDPBSize() ) + 5; // up to 3 base representations + 2 extra (should use "real DPB" size in future)
  RNOK( xCreateData( uiMaxPicsInDPB, rcSPS ) );
  m_uiNumRefFrames      = rcSPS.getNumRefFrames();
  m_uiMaxFrameNum       = ( 1 << ( rcSPS.getLog2MaxFrameNum() ) );
  
  return Err::m_nOK;
}



ErrVal
DecodedPicBuffer::uninit()
{
  ROF( m_bInitDone );

  RNOK( xDeleteData() );
  ROF ( m_cPicBufferList.empty() );
  
  m_pcYuvBufferCtrl   = 0;
  m_uiNumRefFrames    = 0;
  m_uiMaxFrameNum     = 0;
  m_uiLastRefFrameNum = MSYS_UINT_MAX;
  m_bInitDone         = false;
  return Err::m_nOK;
}



ErrVal
DecodedPicBuffer::xCreateData( UInt                         uiMaxPicsInDPB,
                               const SequenceParameterSet&  rcSPS )
{
  ROF( m_bInitDone );
  RNOK( xDeleteData() );

  while( uiMaxPicsInDPB-- )
  {
    DPBUnit*  pcDPBUnit = 0;
    RNOK( DPBUnit::create( pcDPBUnit, *m_pcYuvBufferCtrl, rcSPS ) );
    m_cFreeDPBUnitList.pushBack( pcDPBUnit );
  }
  RNOK( DPBUnit::create( m_pcCurrDPBUnit, *m_pcYuvBufferCtrl, rcSPS ) );
  RNOK( m_pcCurrDPBUnit->uninit() );
  
  return Err::m_nOK;
}



ErrVal
DecodedPicBuffer::xDeleteData()
{
  ROF( m_bInitDone );

  m_cFreeDPBUnitList += m_cUsedDPBUnitList;
  m_cUsedDPBUnitList.clear();

  while( m_cFreeDPBUnitList.size() )
  {
    DPBUnit*  pcDPBUnit = m_cFreeDPBUnitList.popFront();
    pcDPBUnit->destroy();
  }
  if( m_pcCurrDPBUnit )
  {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图第一区| 国产99精品视频| 视频一区在线视频| 亚洲香肠在线观看| 亚洲欧美日韩国产成人精品影院 | 欧美tk丨vk视频| 日韩欧美国产综合一区| 精品久久人人做人人爰| 久久久国产精华| 国产精品情趣视频| 亚洲欧美另类小说| 亚洲成人手机在线| 日韩av电影免费观看高清完整版| 麻豆91精品91久久久的内涵| 久久se这里有精品| 国产99一区视频免费| 成人中文字幕在线| 欧美中文一区二区三区| 91精品黄色片免费大全| 日韩欧美不卡一区| 中文字幕欧美三区| 亚洲一区二区三区四区在线免费观看 | 久久精品夜夜夜夜久久| 国产欧美一区二区三区网站| 亚洲人精品一区| 五月婷婷欧美视频| 精品一区二区三区在线播放视频 | 欧美日韩第一区日日骚| 欧美一二三区在线观看| 久久精品在线观看| 亚洲人123区| 日韩av一二三| 懂色一区二区三区免费观看| 欧美四级电影在线观看| 日韩欧美国产一区二区三区| 国产精品视频免费看| 一区二区三区在线影院| 久久综合综合久久综合| aa级大片欧美| 日韩一区二区三区四区| 国产精品视频第一区| 午夜视频在线观看一区| 国产sm精品调教视频网站| 欧美性生活大片视频| 欧美va亚洲va在线观看蝴蝶网| 国产精品麻豆一区二区| 日韩av一二三| 91浏览器在线视频| 日韩欧美国产高清| 尤物视频一区二区| 国产一区二区三区日韩| 欧美性猛交xxxxxx富婆| 国产亚洲一区字幕| 婷婷综合久久一区二区三区| 成人久久18免费网站麻豆| 91精品国产91久久久久久一区二区 | 色哟哟亚洲精品| 亚洲精品在线一区二区| 亚洲线精品一区二区三区| 国产一区二区三区不卡在线观看| 91女神在线视频| 国产亚洲va综合人人澡精品| 亚洲福利视频导航| 99re亚洲国产精品| 久久久精品tv| 久久99国产精品麻豆| 欧美三区在线观看| 亚洲视频一区二区在线| 国产麻豆精品theporn| 欧美一区永久视频免费观看| 一区二区激情视频| 99热在这里有精品免费| 国产亚洲成aⅴ人片在线观看| 蜜臀av一区二区在线免费观看| 91久久精品国产91性色tv | 国产一区在线观看麻豆| 欧美日韩三级视频| 一区二区三区中文在线观看| av电影在线观看一区| 国产亚洲成aⅴ人片在线观看| 日本网站在线观看一区二区三区| 99久久精品免费看| 国产欧美综合在线观看第十页| 麻豆精品国产91久久久久久| 欧美老肥妇做.爰bbww视频| 亚洲免费观看高清完整| aaa亚洲精品| 国产精品无圣光一区二区| 久久99精品久久久久久动态图| 欧美日本高清视频在线观看| 亚洲午夜一区二区| 91老师片黄在线观看| 国产精品国产三级国产普通话99 | 久久一留热品黄| 日韩av不卡在线观看| 91麻豆精品国产91久久久久久| 亚洲bt欧美bt精品777| 欧美三级电影网| 亚洲成人先锋电影| 欧美精选午夜久久久乱码6080| 亚洲一区二区在线观看视频| 欧美日精品一区视频| 调教+趴+乳夹+国产+精品| 欧美日韩一卡二卡三卡| 香港成人在线视频| 91精品国产色综合久久ai换脸| 蜜桃视频免费观看一区| 日韩三级伦理片妻子的秘密按摩| 麻豆精品一区二区综合av| 日韩欧美国产一区在线观看| 国产一区在线精品| 日本一区二区免费在线| 粉嫩嫩av羞羞动漫久久久 | 国产99久久精品| 国产精品久久久久久户外露出 | 国产精品久久夜| 91热门视频在线观看| 亚洲综合一区二区三区| 欧美日韩国产一级片| 天天色 色综合| 精品99一区二区三区| 成人久久视频在线观看| 亚洲欧洲一区二区三区| 91久久一区二区| 日韩中文字幕91| 久久午夜羞羞影院免费观看| 成人av午夜影院| 亚洲在线免费播放| 日韩欧美高清在线| 成人免费高清视频| 亚洲国产成人av网| 精品国产乱码久久久久久闺蜜| 国产69精品久久久久777| 亚洲精品写真福利| 欧美疯狂性受xxxxx喷水图片| 狠狠色综合色综合网络| 国产精品美女久久久久av爽李琼| 色8久久精品久久久久久蜜 | 欧美亚洲图片小说| 久久电影国产免费久久电影| 中文字幕av一区二区三区免费看 | 国产日韩欧美精品一区| 色88888久久久久久影院野外| 日韩精彩视频在线观看| 久久精品视频一区| 欧美色综合影院| 国产一区二区三区观看| 亚洲午夜精品网| 久久精品欧美一区二区三区不卡 | av在线不卡电影| 日本va欧美va精品| 中文字幕一区二区三区四区不卡 | 欧美色偷偷大香| 国产麻豆精品一区二区| 亚洲小少妇裸体bbw| 国产欧美一区二区精品仙草咪 | 国产欧美精品区一区二区三区 | 56国语精品自产拍在线观看| 国产99精品国产| 婷婷亚洲久悠悠色悠在线播放| 日本一二三四高清不卡| 欧美日本国产视频| 成人国产精品免费观看视频| 久久99久久久久| 亚洲一卡二卡三卡四卡五卡| 欧美国产精品一区| 欧美成人video| 欧美欧美午夜aⅴ在线观看| 成人性色生活片免费看爆迷你毛片| 青青草91视频| 亚洲国产美国国产综合一区二区| 中文字幕av一区 二区| 欧美一级日韩一级| 欧美日韩免费一区二区三区视频| 国产v日产∨综合v精品视频| 日本不卡一二三| 亚洲成人你懂的| 亚洲黄一区二区三区| 国产精品久久福利| 久久久精品日韩欧美| 日韩视频不卡中文| 欧美日韩情趣电影| 欧美在线你懂得| 91在线国产观看| 高清不卡在线观看| 国产制服丝袜一区| 精品在线观看免费| 欧美aaaaa成人免费观看视频| 亚洲一区电影777| 一区二区在线观看av| 亚洲欧美在线aaa| 日本一区二区三区电影| 久久久久久毛片| 久久亚洲二区三区| 久久先锋影音av| 久久精品一二三| 欧美国产精品专区| 国产精品色一区二区三区| 国产日韩欧美精品综合| 欧美经典一区二区|