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

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

?? h264avcencoder.cpp

?? JMVM MPEG MVC/3DAV 測試平臺 國際通用標準
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/*
********************************************************************************

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 "H264AVCEncoderLib.h"
#include "H264AVCEncoder.h"

#include "GOPEncoder.h"
#include "CreaterH264AVCEncoder.h"
#include "ControlMngH264AVCEncoder.h"
#include "H264AVCCommonLib/ParameterSetMng.h"
#include "H264AVCCommonLib/FrameMng.h"

#include <math.h>




H264AVC_NAMESPACE_BEGIN


H264AVCEncoder::H264AVCEncoder():
  m_pcParameterSetMng ( NULL ),
  m_pcPocCalculator   ( NULL ),
  m_pcNalUnitEncoder  ( NULL ),
  m_pcControlMng      ( NULL ),
  m_pcCodingParameter ( NULL ),
  m_pcFrameMng        ( NULL ),
  m_bVeryFirstCall    ( true ),
  m_bScalableSeiMessage( false ),
  m_bInitDone         ( false ),
  m_bTraceEnable      ( false )  
{
  ::memset( m_apcMCTFEncoder, 0x00, MAX_LAYERS*sizeof(Void*) );
  ::memset( m_dFinalFramerate, 0x00,MAX_LAYERS*MAX_DSTAGES*MAX_QUALITY_LEVELS*sizeof(Double) );
	::memset( m_dFinalBitrate,	0x00, MAX_LAYERS*MAX_DSTAGES*MAX_QUALITY_LEVELS*sizeof(Double) );
	for( UInt ui = 0; ui < MAX_LAYERS; ui++ )
	for( UInt uj = 0; uj < MAX_TEMP_LEVELS; uj++ )
		for( UInt uk = 0; uk < MAX_QUALITY_LEVELS; uk++ ){

		  m_aaauidSeqBits[ui][uj][uk] = 0;                   
		  m_aaadSingleLayerBitrate[ui][uj][uk] = 0;            // BUG_FIX Shenqiu (06-04-08)
		  m_aaauiScalableLayerId[ui][uj][uk] = MSYS_UINT_MAX;  // BUG_FIX Shenqiu (06-04-08)
		}

}

H264AVCEncoder::~H264AVCEncoder()
{
}


ErrVal
H264AVCEncoder::create( H264AVCEncoder*& rpcH264AVCEncoder )
{
  rpcH264AVCEncoder = new H264AVCEncoder;

  ROT( NULL == rpcH264AVCEncoder );

  return Err::m_nOK;
}


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



ErrVal
H264AVCEncoder::getBaseLayerStatus( UInt&   ruiBaseLayerId,
                                    UInt&   ruiBaseLayerIdMotionOnly,
                                    Int &   riSpatialScalabilityType,
                                    UInt    uiLayerId,
                                    Int     iPoc )
{
  //===== get spatial resolution ratio =====
 
// TMM_ESS 
  riSpatialScalabilityType = m_apcMCTFEncoder[uiLayerId]->getSpatialScalabilityType();

  //===== check data availability =====
  if( ruiBaseLayerId < m_pcCodingParameter->getNumberOfLayers() )
  {
    Bool  bExists = false;
    Bool  bMotion = false;

    RNOK( m_apcMCTFEncoder[ruiBaseLayerId]->getBaseLayerStatus( bExists, bMotion, iPoc ) );

    ruiBaseLayerIdMotionOnly  = ( bMotion ? ruiBaseLayerId : MSYS_UINT_MAX );
    ruiBaseLayerId            = ( bExists ? ruiBaseLayerId : MSYS_UINT_MAX );
    return Err::m_nOK;
  }

  ruiBaseLayerId              = MSYS_UINT_MAX;
  ruiBaseLayerIdMotionOnly    = MSYS_UINT_MAX;
  return Err::m_nOK;
}


ErrVal
H264AVCEncoder::getBaseLayerData( IntFrame*&    pcFrame,
                                  IntFrame*&    pcResidual,
                                  MbDataCtrl*&  pcMbDataCtrl,
																	MbDataCtrl*&  pcMbDataCtrlEL,		// ICU/ETRI FGS_MOT_USE
                                  Bool&         bConstrainedIPredBL,
                                  Bool&         bForCopyOnly,
                                  Int           iSpatialScalability,
                                  UInt          uiBaseLayerId,
                                  Int           iPoc,
                                  Bool          bMotion )
{
  ROF ( uiBaseLayerId < MAX_LAYERS );

	// ICU/ETRI FGS_MOT_USE
	RNOK( m_apcMCTFEncoder[uiBaseLayerId]->getBaseLayerData( pcFrame, pcResidual, pcMbDataCtrl
	  , pcMbDataCtrlEL, bConstrainedIPredBL, bForCopyOnly, iSpatialScalability, iPoc, bMotion ) );

	LayerParameters& rcBaseLayer = m_pcCodingParameter->getLayerParameters ( uiBaseLayerId );
    UInt uiFgsMotionMode = rcBaseLayer.getFGSMotionMode();

  if (!uiFgsMotionMode)
  {	
		pcMbDataCtrlEL = pcMbDataCtrl;
  }

  return Err::m_nOK;
}

ErrVal
H264AVCEncoder::getBaseLayerSH( SliceHeader*& rpcSliceHeader,
                                UInt          uiBaseLayerId,
                                Int           iPoc )
{
  ROF( uiBaseLayerId < MAX_LAYERS );

  RNOK( m_apcMCTFEncoder[uiBaseLayerId]->getBaseLayerSH( rpcSliceHeader, iPoc ) );
  return Err::m_nOK;
}


UInt*
H264AVCEncoder::getGOPBitsBase( UInt uiBaseLayerId )
{
  ROFRS( uiBaseLayerId < MAX_LAYERS, 0 );
  return m_apcMCTFEncoder[uiBaseLayerId]->getGOPBitsBase();
}

UInt*
H264AVCEncoder::getGOPBitsFGS( UInt uiBaseLayerId )
{
  ROFRS( uiBaseLayerId < MAX_LAYERS, 0 );
  return m_apcMCTFEncoder[uiBaseLayerId]->getGOPBitsFGS();
}

UInt*
H264AVCEncoder::getGOPBits( UInt uiBaseLayerId )
{
	ROFRS( uiBaseLayerId < MAX_LAYERS , 0 );
	return m_apcMCTFEncoder[uiBaseLayerId]->getGOPBits();
}


ErrVal
H264AVCEncoder::init( MCTFEncoder*      apcMCTFEncoder[MAX_LAYERS],
                      ParameterSetMng*  pcParameterSetMng,
                      PocCalculator*    pcPocCalculator,
                      NalUnitEncoder*   pcNalUnitEncoder,
                      ControlMngIf*     pcControlMng,
                      CodingParameter*  pcCodingParameter,
                      FrameMng*         pcFrameMng)
{
  ROT( NULL == apcMCTFEncoder );
  ROT( NULL == pcFrameMng );
  ROT( NULL == pcParameterSetMng );
  ROT( NULL == pcPocCalculator );
  ROT( NULL == pcNalUnitEncoder );
  ROT( NULL == pcControlMng );
  ROT( NULL == pcCodingParameter );

  m_pcFrameMng        = pcFrameMng;
  m_pcParameterSetMng = pcParameterSetMng;
  m_pcPocCalculator   = pcPocCalculator;
  m_pcNalUnitEncoder  = pcNalUnitEncoder;
  m_pcControlMng      = pcControlMng;
  m_pcCodingParameter = pcCodingParameter;

  UInt uiLayer;
  for( uiLayer = 0; uiLayer < m_pcCodingParameter->getNumberOfLayers(); uiLayer++ )
  {
    ROT( NULL == apcMCTFEncoder[uiLayer] );
    m_apcMCTFEncoder[uiLayer] = apcMCTFEncoder[uiLayer];
  }
  for( ; uiLayer < MAX_LAYERS; uiLayer++ )
  {
    m_apcMCTFEncoder[uiLayer] = 0;
  }

  m_cAccessUnitList.clear();

  return Err::m_nOK;
}


ErrVal
H264AVCEncoder::uninit()
{
  m_cUnWrittenSPS.clear();
  m_cUnWrittenPPS.clear();
  m_pcParameterSetMng           = NULL;
  m_pcPocCalculator             = NULL;
  m_pcNalUnitEncoder            = NULL;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人激情黄色小说| 国产精品久久久久久久久免费桃花 | 性做久久久久久久久| 91精品欧美久久久久久动漫| 国产精品 日产精品 欧美精品| 精品福利一区二区三区免费视频| 久久国产精品99久久人人澡| 国产精品久线在线观看| 91精品福利视频| 黑人巨大精品欧美一区| 一区二区三区四区精品在线视频| 欧美电影免费观看高清完整版在 | 色国产综合视频| 亚洲三级在线看| 亚洲欧美综合色| 国产精品亚洲第一| 亚洲免费在线观看视频| 欧美日韩情趣电影| 国产乱子伦视频一区二区三区| 亚洲欧美另类久久久精品| 欧美老肥妇做.爰bbww视频| 国产成a人亚洲精| 老司机精品视频一区二区三区| 亚洲精品美国一| 国产欧美一区二区三区在线看蜜臀 | 91高清视频在线| 另类欧美日韩国产在线| 亚洲欧美日韩国产手机在线| 国产欧美一区二区精品性| 91精品欧美一区二区三区综合在 | 韩国三级在线一区| 欧美国产欧美综合| 欧美午夜理伦三级在线观看| 国产成人精品一区二区三区网站观看| 亚洲成人av一区| 国产精品高潮呻吟久久| 久久99热这里只有精品| 国产亚洲欧美激情| 日韩—二三区免费观看av| 蜜桃av噜噜一区| 色综合久久88色综合天天| 色老头久久综合| 色呦呦网站一区| 91一区二区在线| 国产精品白丝av| 亚洲精品va在线观看| 一本大道av伊人久久综合| 三级一区在线视频先锋 | 欧美一级久久久久久久大片| 亚洲自拍偷拍av| 国产一区二区女| 国产欧美日韩不卡免费| 色偷偷88欧美精品久久久| 麻豆91在线看| 亚洲黄色免费网站| 久久久久久99久久久精品网站| 欧美在线视频不卡| 久久婷婷一区二区三区| 精品一区二区在线观看| 亚洲日本成人在线观看| 91精品国产一区二区人妖| 成人aa视频在线观看| 毛片av一区二区三区| 中文字幕日韩一区| 日韩欧美国产三级| 欧美日韩免费一区二区三区视频| 国产精品一区二区久久不卡| 午夜精品久久久久久| 国产视频视频一区| 日韩欧美区一区二| 欧美精品三级日韩久久| 国产精品77777竹菊影视小说| 亚洲天堂2014| 国产日本一区二区| 日韩一二三区视频| 91丨九色丨尤物| 成人国产精品免费观看动漫| 激情五月婷婷综合| 免费在线看一区| 亚洲成av人片一区二区| 中文字幕av免费专区久久| 久久久午夜精品理论片中文字幕| 欧美性极品少妇| 欧美在线免费视屏| 色一情一伦一子一伦一区| 成人av资源网站| 国产成人av电影| 国产91精品一区二区麻豆网站 | 久久亚区不卡日本| 欧美群妇大交群的观看方式| 欧美色中文字幕| 欧美日韩亚洲综合一区| 91国在线观看| 在线精品观看国产| 欧美日韩一区二区在线观看| 激情小说亚洲一区| 国产精品资源网| 国产成人精品综合在线观看 | 成人一区在线观看| 国产综合色视频| 国产激情精品久久久第一区二区| 韩国v欧美v日本v亚洲v| 国产成人精品影院| 不卡电影免费在线播放一区| 成人a区在线观看| 色婷婷av久久久久久久| 色婷婷久久久久swag精品| 91丨九色丨蝌蚪丨老版| 欧洲精品在线观看| 91精品一区二区三区在线观看| 日韩一区二区不卡| 久久人人97超碰com| 中文字幕一区二区三区不卡在线| 亚洲色图色小说| 日日摸夜夜添夜夜添精品视频| 久久成人久久鬼色| 国产·精品毛片| 欧美三级日韩三级国产三级| 日韩精品一区二区三区三区免费| 国产精品久久久久一区| 日本一区中文字幕| 91在线精品秘密一区二区| 日韩一二三区不卡| 国产精品77777竹菊影视小说| 久久成人久久爱| 欧美亚洲尤物久久| 国产欧美一区二区精品秋霞影院| 亚洲图片自拍偷拍| 成人性生交大片免费看中文网站| 欧美色男人天堂| 中文字幕一区二区三区四区不卡 | 亚洲色图色小说| 韩国女主播一区二区三区| 欧美在线你懂得| 国产精品福利一区二区| 美女脱光内衣内裤视频久久网站| 色婷婷久久99综合精品jk白丝| 精品国产百合女同互慰| 亚洲国产成人va在线观看天堂| 国产精品小仙女| 日韩精品影音先锋| 首页国产丝袜综合| 在线亚洲一区观看| 亚洲同性gay激情无套| 国产成人免费视频精品含羞草妖精| 制服视频三区第一页精品| 亚洲福利一区二区三区| 一本色道久久综合亚洲91 | 日韩av午夜在线观看| 91福利在线看| 亚洲男人电影天堂| av高清久久久| 国产精品不卡一区二区三区| 国产高清不卡二三区| 精品免费视频一区二区| 日本视频一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 久久一区二区三区四区| 日日夜夜免费精品视频| 欧美影院一区二区| 亚洲一卡二卡三卡四卡五卡| 91福利在线导航| 亚洲午夜电影网| 在线观看中文字幕不卡| 亚洲伦理在线免费看| 91麻豆文化传媒在线观看| 亚洲视频一区二区免费在线观看| 成人免费的视频| 亚洲欧洲日产国产综合网| av影院午夜一区| 亚洲欧美另类在线| 欧美在线视频全部完| 午夜影视日本亚洲欧洲精品| 精品视频在线视频| 日韩二区三区四区| 337p日本欧洲亚洲大胆精品| 精品在线一区二区| 久久久久久久久久久久电影| 国产一区二区久久| 国产精品色婷婷| 色综合久久88色综合天天6| 亚洲精品乱码久久久久久 | 国产福利一区二区三区视频| 欧美激情资源网| 91免费版在线| 亚洲va欧美va天堂v国产综合| 欧美午夜一区二区| 欧美a级理论片| 久久亚洲影视婷婷| 波多野结衣亚洲| 亚洲观看高清完整版在线观看| 欧美一级在线视频| 国产mv日韩mv欧美| 一区二区三区精品视频| 欧美日韩一区不卡| 国产剧情一区二区三区| 国产精品久久久久久久裸模| 欧美日韩综合在线| 狠狠色丁香婷婷综合久久片| 国产精品三级电影|