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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? h264avcencoder.cpp

?? JMVM MPEG MVC/3DAV 測試平臺 國際通用標準
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
  m_pcControlMng                = NULL;
  m_pcCodingParameter           = NULL;
  m_pcFrameMng                  = NULL;
  m_bInitDone                   = false;
  m_bVeryFirstCall              = true;
  m_bScalableSeiMessage         = true;
  m_bTraceEnable                = false;  

  for( UInt uiLayer = 0; uiLayer < MAX_LAYERS; uiLayer++ )
  {
    m_apcMCTFEncoder    [uiLayer] = NULL;
    m_acOrgPicBufferList[uiLayer]   .clear();
    m_acRecPicBufferList[uiLayer]   .clear();
  }

  m_cAccessUnitList.clear();

  return Err::m_nOK;
}



//{{Quality level estimation and modified truncation- JVTO044 and m12007
//France Telecom R&D-(nathalie.cammas@francetelecom.com)
ErrVal H264AVCEncoder::writeQualityLevelInfosSEI(ExtBinDataAccessor* pcExtBinDataAccessor, UInt* uiaQualityLevel, UInt *uiaDelta, UInt uiNumLevels, UInt uiLayer ) 
{
	//===== create message =====
  SEI::QualityLevelSEI* pcQualityLevelSEI;
  RNOK( SEI::QualityLevelSEI::create( pcQualityLevelSEI ) );

  //===== set message =====
  pcQualityLevelSEI->setNumLevel(uiNumLevels);
  pcQualityLevelSEI->setDependencyId(uiLayer);

  UInt ui;
  for(ui= 0; ui < uiNumLevels; ui++)
  {
	  pcQualityLevelSEI->setQualityLevel(ui,uiaQualityLevel[ui]);
	  pcQualityLevelSEI->setDeltaBytesRateOfLevel(ui,uiaDelta[ui]);
  }
  
  //===== write message =====
  UInt              uiBits = 0;
  SEI::MessageList  cSEIMessageList;
  cSEIMessageList.push_back                       ( pcQualityLevelSEI );
  RNOK( m_pcNalUnitEncoder  ->initNalUnit         ( pcExtBinDataAccessor ) );
  RNOK( m_pcNalUnitEncoder  ->write               ( cSEIMessageList ) );
  RNOK( m_pcNalUnitEncoder  ->closeNalUnit        ( uiBits ) );

  return Err::m_nOK;
}
//}}Quality level estimation and modified truncation- JVTO044 and m12007

//SEI {
ErrVal H264AVCEncoder::writeNestingSEIMessage( ExtBinDataAccessor* pcExtBinDataAccessor, Double* dSeqBits) 
{
	SEI::ScalableNestingSei* pcScalableNestingSei;
	RNOK( SEI::ScalableNestingSei::create(pcScalableNestingSei) );

	//===== set message =====
	//may be changed here
	Bool bAllPicturesInAuFlag = false;
   	pcScalableNestingSei->setAllPicturesInAuFlag( bAllPicturesInAuFlag );
	if( bAllPicturesInAuFlag  == 0 )
	{
		UInt uiNumPicturesMinus1;

		// assign value, may be changed here
		uiNumPicturesMinus1 = 1;
		UInt *uiPicId = new UInt[uiNumPicturesMinus1+1];
        uiPicId[0] = 0;
		uiPicId[1] = 1;
        
		pcScalableNestingSei->setNumPicturesMinus1( uiNumPicturesMinus1 );
		for( UInt uiIndex = 0; uiIndex <= uiNumPicturesMinus1; uiIndex++ )
		{
			pcScalableNestingSei->setPicId( uiIndex, uiPicId[uiIndex] );
		}
		pcScalableNestingSei->setTemporalId( 0 );
		delete uiPicId;
	}
	//deal with the following SEI message in nesting SEI message
	//may be changed here, here take snap_shot_sei as an example
	SEI::FullframeSnapshotSei *pcSnapShotSEI;
	RNOK( SEI::FullframeSnapshotSei::create( pcSnapShotSEI ) );
	pcSnapShotSEI->setSnapShotId(0);

	UInt              uiBits = 0;
	SEI::MessageList  cSEIMessageList;
	cSEIMessageList.push_back                 ( pcScalableNestingSei );
	cSEIMessageList.push_back                 ( pcSnapShotSEI );
	RNOK ( m_pcNalUnitEncoder->initNalUnit    ( pcExtBinDataAccessor ) );
	RNOK ( m_pcNalUnitEncoder->writeNesting   ( cSEIMessageList ) );
	RNOK ( m_pcNalUnitEncoder->closeNalUnit   ( uiBits ) );
	dSeqBits[0] += uiBits+4*8;
//	RNOK( m_apcMCTFEncoder[0]->addParameterSetBits ( uiBits+4*8 ) );

	RNOK( pcSnapShotSEI->destroy() );
	RNOK( pcScalableNestingSei->destroy() );
	return Err::m_nOK;
}

ErrVal H264AVCEncoder::writeActiveViewInfoSEIMessage( ExtBinDataAccessor* pcExtBinDataAccessor, Double* dSeqBits ) 
{
	SEI::ActiveViewInfoSei* pcActiveViewInfoSei;
	RNOK( SEI::ActiveViewInfoSei::create(pcActiveViewInfoSei) );

	//===== set message =====
	//may be changed here
	Bool bOpPresentFlag = false;

	pcActiveViewInfoSei->setOpPresentFlag( bOpPresentFlag );
	if( bOpPresentFlag )
	{
		UInt uiOperationPointId = 0;
		pcActiveViewInfoSei->setOperationPointId(uiOperationPointId);
	}
	else
	{		
		UInt uiNumActiveViewsMinus1;

		// assign value, may be changed here
    uiNumActiveViewsMinus1 = m_pcCodingParameter->getSpsMVC()->getNumViewMinus1();
    UInt *uiViewCodingOrder = m_pcCodingParameter->getSpsMVC()->getViewCodingOrder();
	UInt *uiViewId = new UInt[uiNumActiveViewsMinus1+1];
	UInt uiIndex;

    for( uiIndex = 0; uiIndex <= uiNumActiveViewsMinus1; uiIndex++ )
    {
      uiViewId[uiIndex] = uiViewCodingOrder[uiIndex];
    }

		pcActiveViewInfoSei->setNumActiveViewsMinus1( uiNumActiveViewsMinus1 );
		for( uiIndex = 0; uiIndex <= uiNumActiveViewsMinus1; uiIndex++ )
		{
			pcActiveViewInfoSei->setViewId( uiIndex, uiViewId[uiIndex] );
		}
		delete uiViewId;
	}

	UInt              uiBits = 0;
	SEI::MessageList  cSEIMessageList;
	cSEIMessageList.push_back                 ( pcActiveViewInfoSei );
	RNOK ( m_pcNalUnitEncoder->initNalUnit    ( pcExtBinDataAccessor ) );
	RNOK ( m_pcNalUnitEncoder->write	      ( cSEIMessageList ) );
	RNOK ( m_pcNalUnitEncoder->closeNalUnit   ( uiBits ) );
	dSeqBits[0] += uiBits+4*8;
	return Err::m_nOK;
}

ErrVal H264AVCEncoder::writeMultiviewSceneInfoSEIMessage( ExtBinDataAccessor* pcExtBinDataAccessor, Double* dSeqBits ) // SEI JVT-W060
{
	SEI::MultiviewSceneInfoSei* pcMultiviewSceneInfoSei;
	RNOK( SEI::MultiviewSceneInfoSei::create(pcMultiviewSceneInfoSei) );

	//===== set message =====
	pcMultiviewSceneInfoSei->setMaxDisparity(m_pcCodingParameter->getMaxDisparity());

	
	UInt              uiBits = 0;
	SEI::MessageList  cSEIMessageList;
	cSEIMessageList.push_back                 ( pcMultiviewSceneInfoSei );
	RNOK ( m_pcNalUnitEncoder->initNalUnit    ( pcExtBinDataAccessor ) );
	RNOK ( m_pcNalUnitEncoder->write	      ( cSEIMessageList ) );
	RNOK ( m_pcNalUnitEncoder->closeNalUnit   ( uiBits ) );
	dSeqBits[0] += uiBits+4*8;
	return Err::m_nOK;
}

ErrVal H264AVCEncoder::writeMultiviewAcquisitionInfoSEIMessage( ExtBinDataAccessor* pcExtBinDataAccessor, Double* dSeqBits ) // SEI JVT-W060, JVT-Z038
{
	SEI::MultiviewAcquisitionInfoSei* pcMultiviewAcquisitionInfoSei;
	RNOK( SEI::MultiviewAcquisitionInfoSei::create(pcMultiviewAcquisitionInfoSei) );
	UInt uiIndex;
	int i,j;

	Bool IntParaFlag=false;
	Bool ExtParaFlag=false;

	UInt NumViewsMinus1 = m_pcCodingParameter->getNumViewMinus1();
	pcMultiviewAcquisitionInfoSei->initialize_memory(NumViewsMinus1+1);
	//===== set message =====
	pcMultiviewAcquisitionInfoSei->setIntrinsicParamFlag(IntParaFlag=m_pcCodingParameter->getIntrinsicParamFlag());
	if (IntParaFlag)
	{
		pcMultiviewAcquisitionInfoSei->setIntrinsicParamsEqual(m_pcCodingParameter->getIntrinsicParamsEqual());
		pcMultiviewAcquisitionInfoSei->setPrecFocalLength(m_pcCodingParameter->getPrecFocalLength());
		pcMultiviewAcquisitionInfoSei->setPrecPrincipalPoint(m_pcCodingParameter->getPrecPrincipalPoint());
		pcMultiviewAcquisitionInfoSei->setPrecRadialDistortion(m_pcCodingParameter->getPrecRadialDistortion());
		

		for (uiIndex=0; uiIndex<= NumViewsMinus1; uiIndex++)
		{
			pcMultiviewAcquisitionInfoSei->setSignFocalLengthX(uiIndex,m_pcCodingParameter->getSignFocalLengthX(uiIndex));
			pcMultiviewAcquisitionInfoSei->setSignFocalLengthY(uiIndex,m_pcCodingParameter->getSignFocalLengthY(uiIndex));
			pcMultiviewAcquisitionInfoSei->setSignPrincipalPointX(uiIndex,m_pcCodingParameter->getSignPrincipalPointX(uiIndex));
			pcMultiviewAcquisitionInfoSei->setSignPrincipalPointY(uiIndex,m_pcCodingParameter->getSignPrincipalPointY(uiIndex));
			pcMultiviewAcquisitionInfoSei->setSignRadialDistortion(uiIndex,m_pcCodingParameter->getSignRadialDistortion(uiIndex));

			pcMultiviewAcquisitionInfoSei->setExponentFocalLengthX(uiIndex,m_pcCodingParameter->getExponentFocalLengthX(uiIndex));
			pcMultiviewAcquisitionInfoSei->setExponentFocalLengthY(uiIndex,m_pcCodingParameter->getExponentFocalLengthY(uiIndex));
			pcMultiviewAcquisitionInfoSei->setExponentPrincipalPointX(uiIndex,m_pcCodingParameter->getExponentPrincipalPointX(uiIndex));
			pcMultiviewAcquisitionInfoSei->setExponentPrincipalPointY(uiIndex,m_pcCodingParameter->getExponentPrincipalPointY(uiIndex));
			pcMultiviewAcquisitionInfoSei->setExponentRadialDistortion(uiIndex,m_pcCodingParameter->getExponentRadialDistortion(uiIndex));
		
			pcMultiviewAcquisitionInfoSei->setMantissaFocalLengthX(uiIndex,m_pcCodingParameter->getMantissaFocalLengthX(uiIndex));
			pcMultiviewAcquisitionInfoSei->setMantissaFocalLengthY(uiIndex,m_pcCodingParameter->getMantissaFocalLengthY(uiIndex));
			pcMultiviewAcquisitionInfoSei->setMantissaPrincipalPointX(uiIndex,m_pcCodingParameter->getMantissaPrincipalPointX(uiIndex));
			pcMultiviewAcquisitionInfoSei->setMantissaPrincipalPointY(uiIndex,m_pcCodingParameter->getMantissaPrincipalPointY(uiIndex));
			pcMultiviewAcquisitionInfoSei->setMantissaRadialDistortion(uiIndex,m_pcCodingParameter->getMantissaRadialDistortion(uiIndex));
		
		}
	} 

	pcMultiviewAcquisitionInfoSei->setExtrinsicParamFlag(ExtParaFlag=m_pcCodingParameter->getExtrinsicParamFlag());
	if (ExtParaFlag)
	{
		pcMultiviewAcquisitionInfoSei->setPrecRotationParam(m_pcCodingParameter->getPrecRotationParam());
		pcMultiviewAcquisitionInfoSei->setPrecTranslationParam(m_pcCodingParameter->getPrecTranslationParam());
		
		for (uiIndex=0; uiIndex<= NumViewsMinus1; uiIndex++)
		{
			for (i=0; i<3; i++)
			{
				pcMultiviewAcquisitionInfoSei->setSignTranslationParam(uiIndex,i,m_pcCodingParameter->getSignTranslationParam(uiIndex,i));
				pcMultiviewAcquisitionInfoSei->setExponentTranslationParam(uiIndex,i,m_pcCodingParameter->getExponentTranslationParam(uiIndex,i));
				pcMultiviewAcquisitionInfoSei->setMantissaTranslationParam(uiIndex,i,m_pcCodingParameter->getMantissaTranslationParam(uiIndex,i));
				for (j=0; j<3; j++) {
					pcMultiviewAcquisitionInfoSei->setSignRotationParam(uiIndex,i,j,m_pcCodingParameter->getSignRotationParam(uiIndex,i,j));
					pcMultiviewAcquisitionInfoSei->setExponentRotationParam(uiIndex,i,j,m_pcCodingParameter->getExponentRotationParam(uiIndex,i,j));
					pcMultiviewAcquisitionInfoSei->setMantissaRotationParam(uiIndex,i,j,m_pcCodingParameter->getMantissaRotationParam(uiIndex,i,j));
				}
			}
				
		}
	}

	
	UInt              uiBits = 0;
	SEI::MessageList  cSEIMessageList;
	cSEIMessageList.push_back                 ( pcMultiviewAcquisitionInfoSei );
	RNOK ( m_pcNalUnitEncoder->initNalUnit    ( pcExtBinDataAccessor ) );
	RNOK ( m_pcNalUnitEncoder->write	      ( cSEIMessageList ) );
	RNOK ( m_pcNalUnitEncoder->closeNalUnit   ( uiBits ) );
	dSeqBits[0] += uiBits+4*8;
  	m_pcCodingParameter->release_memory();
	return Err::m_nOK;
}

ErrVal H264AVCEncoder::writeViewScalInfoSEIMessage(ExtBinDataAccessor *pcExtBinDataAccessor, 
												   Double* dBitRate, 
												   Double* dFrameRate,
												   Double  dMaxRate)
{
  SEI::ViewScalabilityInfoSei* pcViewScalInfoSei;
  RNOK( SEI::ViewScalabilityInfoSei::create(pcViewScalInfoSei) );

  //==set message==
  UInt i, j;
 // UInt uiNumViews = m_pcCodingParameter->getSpsMVC()->getNumViewMinus1() + 1 ; 
  UInt uiNumOperationPointsMinus1 = 0;
  UInt uiCurrViewId = m_pcCodingParameter->getCurentViewId();
  pcViewScalInfoSei->setNumOperationPointsMinus1( uiNumOperationPointsMinus1 );
  for( i = 0; i <= uiNumOperationPointsMinus1; i++ )
  {
    UInt uiOperationPointId, uiPriorityId, uiTemporalId, uiNumActiveViewsMinus1;

	uiOperationPointId = i;
	uiTemporalId = m_pcCodingParameter->getDecompositionStages();
	uiPriorityId = uiCurrViewId == 0 ? uiTemporalId : ( uiTemporalId+uiCurrViewId%2+1 );
	uiNumActiveViewsMinus1 = 0;

	pcViewScalInfoSei->setOperationPointId( i, uiOperationPointId );
	pcViewScalInfoSei->setPriorityId( i, uiPriorityId );
	pcViewScalInfoSei->setTemporalId( i, uiTemporalId );
	pcViewScalInfoSei->setNumActiveViewsMinus1( i, uiNumActiveViewsMinus1 );
    
	for( j = 0; j <= uiNumActiveViewsMinus1; j++)
	{
	  UInt uiViewId = uiCurrViewId;
	  pcViewScalInfoSei->setViewId( i, j, uiViewId );
	}

	Bool bProfileLevelInfoPresentFlag, bBitRateInfoPresentFlag, bFrmRateInfoPresentFlag;
	Bool bOpDependencyInfoPresentFlag, bInitParameterSetsInfoPresentFlag;

	bProfileLevelInfoPresentFlag = false;
	bBitRateInfoPresentFlag = true;
	bFrmRateInfoPresentFlag = true;//may be changed
	bOpDependencyInfoPresentFlag = false;
	bInitParameterSetsInfoPresentFlag = false;
	pcViewScalInfoSei->setProfileLevelInfoPresentFlag( i, bProfileLevelInfoPresentFlag );
	pcViewScalInfoSei->setBitRateInfoPresentFlag( i, bBitRateInfoPresentFlag );
	pcViewScalInfoSei->setFrmRateInfoPresentFlag( i, bFrmRateInfoPresentFlag );
	pcViewScalInfoSei->setOpDependencyInfoPresentFlag( i, bOpDependencyInfoPresentFlag );
	pcViewScalInfoSei->setInitParameterSetsInfoPresentFlag( i, bInitParameterSetsInfoPresentFlag );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本va午夜在线影院| 久久久蜜桃精品| 亚洲一区二区成人在线观看| 色综合久久久久久久久| 亚洲美女精品一区| 99视频精品全部免费在线| 亚洲视频网在线直播| 色噜噜狠狠色综合中国| 亚洲成人免费观看| 日韩一级片网址| 国产乱对白刺激视频不卡 | 欧美精品一二三四| 日本不卡一区二区| 久久久蜜桃精品| 97aⅴ精品视频一二三区| 亚洲免费资源在线播放| 这里只有精品视频在线观看| 黄页视频在线91| 日韩一区在线看| 4438成人网| 成人app软件下载大全免费| 一区二区三区四区乱视频| 91精品国产综合久久香蕉的特点 | 亚洲男人的天堂一区二区| 欧美在线|欧美| 久久不见久久见免费视频1| 中文字幕久久午夜不卡| 欧美日韩一区二区欧美激情| 久久97超碰国产精品超碰| 国产精品久久久久影院亚瑟| 欧美日韩在线亚洲一区蜜芽| 激情综合网天天干| 亚洲女爱视频在线| 欧美成人一区二区三区在线观看| 成人精品视频.| 日韩电影在线观看一区| 亚洲欧美偷拍另类a∨色屁股| 欧美人妇做爰xxxⅹ性高电影| 韩国精品主播一区二区在线观看| 国产精品国产三级国产aⅴ中文 | 成人免费高清在线观看| 亚洲第一会所有码转帖| 国产精品伦理在线| 欧美一区二区福利视频| 久久精品国产秦先生| 日韩午夜精品电影| 亚洲高清三级视频| 91福利在线播放| 亚洲一区在线观看免费| jlzzjlzz欧美大全| 国产午夜精品一区二区| 国产自产视频一区二区三区| 欧美videos中文字幕| 麻豆专区一区二区三区四区五区| 欧美一区二区三区在| 视频一区视频二区在线观看| 91精品一区二区三区久久久久久 | 久久久久9999亚洲精品| 日韩精品视频网| 美女网站一区二区| 韩国av一区二区三区四区| 777奇米四色成人影色区| 精彩视频一区二区| 久久精工是国产品牌吗| 欧美大片一区二区| 国产成人综合自拍| 香蕉av福利精品导航| 日韩毛片一二三区| 国产精品18久久久久久vr| 久久久91精品国产一区二区精品| 欧美丰满一区二区免费视频 | 欧美色爱综合网| 99精品久久久久久| 极品少妇xxxx精品少妇偷拍| 美脚の诱脚舐め脚责91| 亚洲影视在线播放| 亚洲一区欧美一区| 综合色中文字幕| 亚洲欧美日韩久久| 国产免费久久精品| 国产精品三级电影| 久久女同精品一区二区| 久久奇米777| 亚洲精品一线二线三线| 久久久影院官网| 精品国产免费久久| 欧美一二三区在线| 欧美性视频一区二区三区| 欧美性色欧美a在线播放| 成人免费看的视频| 97精品久久久午夜一区二区三区 | 国产91精品一区二区麻豆网站 | 日本一区二区三区在线观看| 国产精品午夜免费| 欧美激情综合五月色丁香小说| 欧美一区二区精品| 日韩美女一区二区三区四区| 欧美sm美女调教| 久久精品一二三| 欧美午夜寂寞影院| 日韩av中文在线观看| 亚洲自拍偷拍综合| 日韩电影在线一区二区| 日韩国产欧美一区二区三区| 老汉av免费一区二区三区| 日韩三级高清在线| 久久久久国产成人精品亚洲午夜| 欧美激情综合五月色丁香| 久久网这里都是精品| 欧美在线|欧美| 在线精品视频一区二区| 成人av电影在线观看| 国产精品69毛片高清亚洲| 激情另类小说区图片区视频区| 日韩av在线播放中文字幕| 亚洲一区二区在线观看视频 | 欧美一区二区三区的| 日韩一区二区中文字幕| 久久免费视频色| 国产精品久久久久影院老司| 亚洲一区二区五区| 日本成人在线网站| 91视频一区二区| 欧美精品粉嫩高潮一区二区| 国产喂奶挤奶一区二区三区| 99国产精品视频免费观看| 丝袜亚洲另类丝袜在线| 国产一区美女在线| 精品一区二区三区的国产在线播放 | 国产毛片精品视频| 91丨porny丨蝌蚪视频| 日韩一二三区不卡| 亚洲国产激情av| 三级久久三级久久| 成人黄色在线看| 日韩欧美在线网站| 国产精品久久久久影院老司 | 国产精品久久久久久久久搜平片| 天天影视涩香欲综合网| 国产成人综合视频| 日韩免费观看高清完整版| 综合色中文字幕| 国产成人免费xxxxxxxx| 欧美三级电影精品| 一区二区三区日韩欧美精品| 久久丁香综合五月国产三级网站| 日本精品免费观看高清观看| 日韩午夜在线影院| 亚洲大型综合色站| a美女胸又www黄视频久久| 久久久久久电影| 手机精品视频在线观看| 欧美亚洲综合另类| 国产精品免费视频观看| 国产福利91精品| 4438x成人网最大色成网站| 亚洲国产精品久久一线不卡| 日本免费在线视频不卡一不卡二| 欧美三区在线观看| 国产日韩亚洲欧美综合| 精品一区二区三区免费观看| 色哟哟一区二区| 国产精品久久久久久久久动漫| 国产成+人+日韩+欧美+亚洲| 欧美一级一区二区| 日欧美一区二区| 91国在线观看| 亚洲自拍另类综合| 99麻豆久久久国产精品免费优播| 欧美高清在线视频| 国产一区二区三区香蕉| 久久久精品国产免大香伊| 日韩一区精品字幕| 欧美一卡二卡在线| 天天av天天翘天天综合网色鬼国产| 午夜欧美2019年伦理| 麻豆免费精品视频| xfplay精品久久| 久久69国产一区二区蜜臀| 久久一区二区三区四区| 麻豆精品国产传媒mv男同| 26uuu成人网一区二区三区| 亚洲成人av一区二区三区| 在线不卡a资源高清| 亚洲人成网站在线| 欧美伊人精品成人久久综合97| 天天综合日日夜夜精品| 欧美裸体bbwbbwbbw| 韩国在线一区二区| 精品成人私密视频| 不卡欧美aaaaa| 国产精品国产三级国产专播品爱网| 91猫先生在线| 一区二区三区在线观看网站| 91麻豆精品国产自产在线| 婷婷开心久久网| 欧美极品aⅴ影院| 日本久久一区二区三区| 午夜激情久久久| 欧美激情综合网|