Changeset 1342 in 3DVCSoftware
- Timestamp:
- 1 Oct 2015, 15:54:17 (9 years ago)
- Location:
- branches/HTM-15.1-dev0-Disney
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-15.1-dev0-Disney/cfg/SEI/overlayInfoSei.cfg
r1328 r1342 1 2 PayloadType : TBD 1 PayloadType : 166 3 2 4 3 #======== Applicability ========== ( SEI is only send for pictures in intersection ) 5 ApplicableLayerIds : TBD# LayerIds of layers to which the SEI is added. (all when empty)6 ApplicablePocs : TBD# POCs of pictures to which the SEI is added. (all when empty)7 ApplicableTids : TBD# Tids of pictures to which the SEI is added. (all when empty)8 ApplicableVclNaluTypes : TBD# NaluUnitTypes of picture to which the SEI is added. (all when empty)4 ApplicableLayerIds : # LayerIds of layers to which the SEI is added. (all when empty) 5 ApplicablePocs : # POCs of pictures to which the SEI is added. (all when empty) 6 ApplicableTids : # Tids of pictures to which the SEI is added. (all when empty) 7 ApplicableVclNaluTypes : # NaluUnitTypes of picture to which the SEI is added. (all when empty) 9 8 10 9 #======== Position in bit stream ============ 11 SeiNaluId : 0 # Identifies to which NAL unit the SEI is added. 10 SeiNaluId : 0 # Identifies to which NAL unit the SEI is added. 12 11 PositionInSeiNalu : 0 # Identifies the position within the NAL unit 13 12 14 13 #======== Payload modification ============= 15 ModifyByEncoder : TBD# 0: Use payload as specified in cfg file 1: Modify SEI by encoder.14 ModifyByEncoder : 0 # 0: Use payload as specified in cfg file 1: Modify SEI by encoder. 16 15 17 16 #======== Payload specification ============= 18 17 OverlayInfoCancelFlag : 0 19 OverlayContentAuxIdMinus128 : 020 OverlayLabelAuxIdMinus128 : 021 OverlayAlphaAuxIdMinus128 : 018 OverlayContentAuxIdMinus128 : 1 19 OverlayLabelAuxIdMinus128 : 2 20 OverlayAlphaAuxIdMinus128 : 3 22 21 OverlayElementLabelValueLengthMinus8: 0 23 22 NumOverlaysMinus1 : 0 24 OverlayIdx : 025 LanguageOverlayPresentFlag : 026 OverlayContentLayerId : 027 OverlayLabelPresentFlag : 028 OverlayLabelLayerId : 023 OverlayIdx : 5 24 LanguageOverlayPresentFlag : 1 25 OverlayContentLayerId : 10 26 OverlayLabelPresentFlag : 1 27 OverlayLabelLayerId : 20 29 28 OverlayAlphaPresentFlag : 0 30 OverlayAlphaLayerId : 0 31 NumOverlayElementsMinus1 : 0 32 OverlayElementLabelMin_0 : 0 33 OverlayElementLabelMax_0 : 0 34 OverlayZeroBit : 0 35 OverlayLanguage : 0 36 OverlayName : 0 37 OverlayElementName_0 : 0 38 OverlayInfoPersistenceFlag : 0 29 OverlayAlphaLayerId : 30 30 NumOverlayElementsMinus1 : 3 31 OverlayElementLabelMin_0 : 40 100 170 230 32 OverlayElementLabelMax_0 : 80 140 210 255 33 OverlayInfoPersistenceFlag : 1 34 -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibCommon/SEI.cpp
r1339 r1342 234 234 case SEI::SUB_BITSTREAM_PROPERTY : return new SEISubBitstreamProperty; 235 235 case SEI::ALPHA_CHANNEL_INFO : return new SEIAlphaChannelInfo; 236 #if NH_MV_SEI_TBD237 236 case SEI::OVERLAY_INFO : return new SEIOverlayInfo; 238 #endif239 237 case SEI::TEMPORAL_MV_PREDICTION_CONSTRAINTS : return new SEITemporalMvPredictionConstraints; 240 238 #if NH_MV_SEI_TBD … … 740 738 741 739 }; 742 #if NH_MV_SEI_TBD 743 Void SEIOverlayInfo::setupFromSlice ( const TComSlice* slice ) 744 { 745 sei.m_overlayInfoCancelFlag = TBD ; 746 if( !sei.m_overlayInfoCancelFlag ) 747 { 748 sei.m_overlayContentAuxIdMinus128 = TBD ; 749 sei.m_overlayLabelAuxIdMinus128 = TBD ; 750 sei.m_overlayAlphaAuxIdMinus128 = TBD ; 751 sei.m_overlayElementLabelValueLengthMinus8 = TBD ; 752 sei.m_numOverlaysMinus1 = TBD ; 753 for( Int i = 0; i <= NumOverlaysMinus1( ); i++ ) 740 741 SEIOverlayInfo::SEIOverlayInfo ( ) 742 : m_numOverlaysMax(16) 743 , m_numOverlayElementsMax(256) 744 , m_numStringBytesMax(256) //incl. null termination byte 745 { }; 746 747 Void SEIOverlayInfo::initStringElements ( ) 748 { 749 // Set some string values for syntax elements of declarator type st(v) 750 m_overlayLanguage.resize(m_numOverlaysMax); 751 m_overlayName.resize(m_numOverlaysMax); 752 m_overlayElementName.resize(m_numOverlaysMax); 753 char* cstr = new char[m_numStringBytesMax]; 754 for ( Int i=0 ; i<m_numOverlaysMax ; i++ ) 755 { 756 sprintf(cstr, "LanguageTag%02d", i); 757 m_overlayLanguage[i] = std::string(cstr); 758 sprintf(cstr, "Overlay%02dName", i); 759 m_overlayName[i] = std::string(cstr); 760 761 m_overlayElementName[i].resize(m_numOverlayElementsMax); 762 for ( Int j=0 ; j<m_numOverlayElementsMax ; j++ ) 754 763 { 755 sei.m_overlayIdx[i] = TBD ; 756 sei.m_languageOverlayPresentFlag[i] = TBD ; 757 sei.m_overlayContentLayerId[i] = TBD ; 758 sei.m_overlayLabelPresentFlag[i] = TBD ; 759 if( sei.m_overlayLabelPresentFlag( i ) ) 760 { 761 sei.m_overlayLabelLayerId[i] = TBD ; 762 } 763 sei.m_overlayAlphaPresentFlag[i] = TBD ; 764 if( sei.m_overlayAlphaPresentFlag( i ) ) 765 { 766 sei.m_overlayAlphaLayerId[i] = TBD ; 767 } 768 if( sei.m_overlayLabelPresentFlag( i ) ) 769 { 770 sei.m_numOverlayElementsMinus1[i] = TBD ; 771 for( Int j = 0; j <= sei.m_numOverlayElementsMinus1( i ); j++ ) 772 { 773 sei.m_overlayElementLabelMin[i][j] = TBD ; 774 sei.m_overlayElementLabelMax[i][j] = TBD ; 775 } 776 } 764 sprintf(cstr, "Overlay%02dElement%03dName", i, j); 765 m_overlayElementName[i][j] = std::string(cstr); 777 766 } 778 while( !ByteaLigned(() ) ); 779 { 780 sei.m_overlayZeroBit = TBD ; 781 } 782 for( Int i = 0; i <= NumOverlaysMinus1( ); i++ ) 783 { 784 if( sei.m_languageOverlayPresentFlag( i ) ) 785 { 786 sei.m_overlayLanguage[i] = TBD ; 787 } 788 sei.m_overlayName[i] = TBD ; 789 if( sei.m_overlayLabelPresentFlag( i ) ) 790 { 791 for( Int j = 0; j <= sei.m_numOverlayElementsMinus1( i ); j++ ) 792 { 793 sei.m_overlayElementName[i][j] = TBD ; 794 } 795 } 796 } 797 sei.m_overlayInfoPersistenceFlag = TBD ; 798 } 767 } 768 delete [] cstr; 799 769 }; 800 770 … … 804 774 IntAry1d defAppLayerIds, defAppPocs, defAppTids, defAppVclNaluTypes; 805 775 806 // TBD:Add default values for which layers, POCS, Tids or Nalu types the SEI should be send.807 defAppLayerIds . push_back( TBD);808 defAppPocs .push_back( TBD);809 defAppTids .push_back( TBD);810 defAppVclNaluTypes .push_back( TBD );776 // Add default values for which layers, POCS, Tids or Nalu types the SEI should be send. 777 defAppLayerIds .clear(); 778 defAppPocs .push_back( 0 ); 779 defAppTids .push_back( 0 ); 780 defAppVclNaluTypes = IDR_NAL_UNIT_TYPES; 811 781 812 782 Int defSeiNaluId = 0; 813 783 Int defPositionInSeiNalu = 0; 814 Bool defModifyByEncoder = TBD;784 Bool defModifyByEncoder = false; 815 785 816 786 // Setup config file options … … 819 789 820 790 opts.addOptions() 821 ("OverlayInfoCancelFlag" , m_overlayInfoCancelFlag , false , "OverlayInfoCancelFlag" ) 822 ("OverlayContentAuxIdMinus128" , m_overlayContentAuxIdMinus128 , 0 , "OverlayContentAuxIdMinus128" ) 823 ("OverlayLabelAuxIdMinus128" , m_overlayLabelAuxIdMinus128 , 0 , "OverlayLabelAuxIdMinus128" ) 824 ("OverlayAlphaAuxIdMinus128" , m_overlayAlphaAuxIdMinus128 , 0 , "OverlayAlphaAuxIdMinus128" ) 825 ("OverlayElementLabelValueLengthMinus8", m_overlayElementLabelValueLengthMinus8, 0 , "OverlayElementLabelValueLengthMinus8") 826 ("NumOverlaysMinus1" , m_numOverlaysMinus1 , 0 , "NumOverlaysMinus1" ) 827 ("OverlayIdx" , m_overlayIdx , IntAry1d (1,0) , "OverlayIdx" ) 828 ("LanguageOverlayPresentFlag" , m_languageOverlayPresentFlag , BoolAry1d(1,0) , "LanguageOverlayPresentFlag" ) 829 ("OverlayContentLayerId" , m_overlayContentLayerId , IntAry1d (1,0) , "OverlayContentLayerId" ) 830 ("OverlayLabelPresentFlag" , m_overlayLabelPresentFlag , BoolAry1d(1,0) , "OverlayLabelPresentFlag" ) 831 ("OverlayLabelLayerId" , m_overlayLabelLayerId , IntAry1d (1,0) , "OverlayLabelLayerId" ) 832 ("OverlayAlphaPresentFlag" , m_overlayAlphaPresentFlag , BoolAry1d(1,0) , "OverlayAlphaPresentFlag" ) 833 ("OverlayAlphaLayerId" , m_overlayAlphaLayerId , IntAry1d (1,0) , "OverlayAlphaLayerId" ) 834 ("NumOverlayElementsMinus1" , m_numOverlayElementsMinus1 , IntAry1d (1,0) , "NumOverlayElementsMinus1" ) 835 ("OverlayElementLabelMin_%d" , m_overlayElementLabelMin , IntAry1d (1,0) ,ADDNUM , "OverlayElementLabelMin" ) 836 ("OverlayElementLabelMax_%d" , m_overlayElementLabelMax , IntAry1d (1,0) ,ADDNUM , "OverlayElementLabelMax" ) 837 ("OverlayZeroBit" , m_overlayZeroBit , 0 , "OverlayZeroBit" ) 838 ("OverlayLanguage" , m_overlayLanguage , IntAry1d (1,0) , "OverlayLanguage" ) 839 ("OverlayName" , m_overlayName , IntAry1d (1,0) , "OverlayName" ) 840 ("OverlayElementName_%d" , m_overlayElementName , IntAry1d (1,0) ,ADDNUM , "OverlayElementName" ) 841 ("OverlayInfoPersistenceFlag" , m_overlayInfoPersistenceFlag , false , "OverlayInfoPersistenceFlag" ) 842 ; 791 ("OverlayInfoCancelFlag" , m_overlayInfoCancelFlag , false , "OverlayInfoCancelFlag" ) 792 ("OverlayContentAuxIdMinus128" , m_overlayContentAuxIdMinus128 , 0 , "OverlayContentAuxIdMinus128" ) 793 ("OverlayLabelAuxIdMinus128" , m_overlayLabelAuxIdMinus128 , 0 , "OverlayLabelAuxIdMinus128" ) 794 ("OverlayAlphaAuxIdMinus128" , m_overlayAlphaAuxIdMinus128 , 0 , "OverlayAlphaAuxIdMinus128" ) 795 ("OverlayElementLabelValueLengthMinus8", m_overlayElementLabelValueLengthMinus8, 0 , "OverlayElementLabelValueLengthMinus8") 796 ("NumOverlaysMinus1" , m_numOverlaysMinus1 , 0 , "NumOverlaysMinus1" ) 797 ("OverlayIdx" , m_overlayIdx , IntAry1d (16,0) , "OverlayIdx" ) 798 ("LanguageOverlayPresentFlag" , m_languageOverlayPresentFlag , BoolAry1d(16,0) , "LanguageOverlayPresentFlag" ) 799 ("OverlayContentLayerId" , m_overlayContentLayerId , IntAry1d (16,0) , "OverlayContentLayerId" ) 800 ("OverlayLabelPresentFlag" , m_overlayLabelPresentFlag , BoolAry1d(16,0) , "OverlayLabelPresentFlag" ) 801 ("OverlayLabelLayerId" , m_overlayLabelLayerId , IntAry1d (16,0) , "OverlayLabelLayerId" ) 802 ("OverlayAlphaPresentFlag" , m_overlayAlphaPresentFlag , BoolAry1d(16,0) , "OverlayAlphaPresentFlag" ) 803 ("OverlayAlphaLayerId" , m_overlayAlphaLayerId , IntAry1d (16,0) , "OverlayAlphaLayerId" ) 804 ("NumOverlayElementsMinus1" , m_numOverlayElementsMinus1 , IntAry1d (16,0) , "NumOverlayElementsMinus1" ) 805 ("OverlayElementLabelMin_%d" , m_overlayElementLabelMin , IntAry1d (256,0) ,16 , "OverlayElementLabelMin" ) 806 ("OverlayElementLabelMax_%d" , m_overlayElementLabelMax , IntAry1d (256,0) ,16 , "OverlayElementLabelMax" ) 807 ("OverlayInfoPersistenceFlag" , m_overlayInfoPersistenceFlag , false , "OverlayInfoPersistenceFlag" ) 808 ; 843 809 844 810 po::setDefaults(opts); … … 847 813 po::ErrorReporter err; 848 814 po::parseConfigFile( opts, cfgFile, err ); 849 }; 815 816 // Initialize some values for syntax elements with declaration type st(v) (i.e. string type syntax elements) 817 initStringElements(); 818 }; 819 850 820 851 821 Bool SEIOverlayInfo::checkCfg( const TComSlice* slice ) 852 822 { 853 823 // Check config values 854 Bool wrongConfig = false; 855 856 // TBD: Add constraints on presence of SEI here. 857 xCheckCfg ( wrongConfig, TBD , "TBD" ); 858 xCheckCfg ( wrongConfig, TBD , "TBD" ); 859 860 // TBD: Modify constraints according to the SEI semantics. 861 xCheckCfgRange( wrongConfig, m_overlayInfoCancelFlag , MINVAL , MAXVAL, "overlay_info_cancel_flag" ); 862 xCheckCfgRange( wrongConfig, m_overlayContentAuxIdMinus128 , MINVAL , MAXVAL, "overlay_content_aux_id_minus128" ); 863 xCheckCfgRange( wrongConfig, m_overlayLabelAuxIdMinus128 , MINVAL , MAXVAL, "overlay_label_aux_id_minus128" ); 864 xCheckCfgRange( wrongConfig, m_overlayAlphaAuxIdMinus128 , MINVAL , MAXVAL, "overlay_alpha_aux_id_minus128" ); 865 xCheckCfgRange( wrongConfig, m_overlayElementLabelValueLengthMinus8, MINVAL , MAXVAL, "overlay_element_label_value_length_minus8"); 866 xCheckCfgRange( wrongConfig, m_numOverlaysMinus1 , MINVAL , MAXVAL, "num_overlays_minus1" ); 867 xCheckCfgRange( wrongConfig, m_overlayIdx[i] , MINVAL , MAXVAL, "overlay_idx" ); 868 xCheckCfgRange( wrongConfig, m_languageOverlayPresentFlag[i] , MINVAL , MAXVAL, "language_overlay_present_flag" ); 869 xCheckCfgRange( wrongConfig, m_overlayContentLayerId[i] , MINVAL , MAXVAL, "overlay_content_layer_id" ); 870 xCheckCfgRange( wrongConfig, m_overlayLabelPresentFlag[i] , MINVAL , MAXVAL, "overlay_label_present_flag" ); 871 xCheckCfgRange( wrongConfig, m_overlayLabelLayerId[i] , MINVAL , MAXVAL, "overlay_label_layer_id" ); 872 xCheckCfgRange( wrongConfig, m_overlayAlphaPresentFlag[i] , MINVAL , MAXVAL, "overlay_alpha_present_flag" ); 873 xCheckCfgRange( wrongConfig, m_overlayAlphaLayerId[i] , MINVAL , MAXVAL, "overlay_alpha_layer_id" ); 874 xCheckCfgRange( wrongConfig, m_numOverlayElementsMinus1[i] , MINVAL , MAXVAL, "num_overlay_elements_minus1" ); 875 xCheckCfgRange( wrongConfig, m_overlayElementLabelMin[i][j] , MINVAL , MAXVAL, "overlay_element_label_min" ); 876 xCheckCfgRange( wrongConfig, m_overlayElementLabelMax[i][j] , MINVAL , MAXVAL, "overlay_element_label_max" ); 877 xCheckCfgRange( wrongConfig, m_overlayZeroBit , MINVAL , MAXVAL, "overlay_zero_bit" ); 878 xCheckCfgRange( wrongConfig, m_overlayLanguage[i] , MINVAL , MAXVAL, "overlay_language" ); 879 xCheckCfgRange( wrongConfig, m_overlayName[i] , MINVAL , MAXVAL, "overlay_name" ); 880 xCheckCfgRange( wrongConfig, m_overlayElementName[i][j] , MINVAL , MAXVAL, "overlay_element_name" ); 881 xCheckCfgRange( wrongConfig, m_overlayInfoPersistenceFlag , MINVAL , MAXVAL, "overlay_info_persistence_flag" ); 824 Bool wrongConfig = false; 825 826 xCheckCfgRange( wrongConfig, m_overlayInfoCancelFlag , 0 , 1, "overlay_info_cancel_flag" ); 827 xCheckCfgRange( wrongConfig, m_overlayContentAuxIdMinus128 , 0 , 31, "overlay_content_aux_id_minus128" ); 828 xCheckCfgRange( wrongConfig, m_overlayLabelAuxIdMinus128 , 0 , 31, "overlay_label_aux_id_minus128" ); 829 xCheckCfgRange( wrongConfig, m_overlayAlphaAuxIdMinus128 , 0 , 31, "overlay_alpha_aux_id_minus128" ); 830 xCheckCfgRange( wrongConfig, m_numOverlaysMinus1 , 0 , m_numOverlaysMax-1, "num_overlays_minus1" ); 831 for (Int i=0 ; i<=m_numOverlaysMinus1 ; ++i) 832 { 833 xCheckCfgRange( wrongConfig, m_overlayIdx[i] , 0 , 255, "overlay_idx" ); 834 xCheckCfgRange( wrongConfig, m_languageOverlayPresentFlag[i] , 0 , 1, "language_overlay_present_flag" ); 835 xCheckCfgRange( wrongConfig, m_overlayLabelPresentFlag[i] , 0 , 1, "overlay_label_present_flag" ); 836 xCheckCfgRange( wrongConfig, m_overlayAlphaPresentFlag[i] , 0 , 1, "overlay_alpha_present_flag" ); 837 xCheckCfgRange( wrongConfig, m_overlayContentLayerId[i] , 0 , 63, "overlay_content_layer_id" ); 838 xCheckCfgRange( wrongConfig, m_overlayLabelLayerId[i] , 0 , 63, "overlay_label_layer_id" ); 839 xCheckCfgRange( wrongConfig, m_overlayAlphaLayerId[i] , 0 , 63, "overlay_alpha_layer_id" ); 840 xCheckCfgRange( wrongConfig, m_numOverlayElementsMinus1[i] , 0 , m_numOverlayElementsMax-1, "num_overlay_elements_minus1" ); 841 for (Int j=0 ; j<=m_numOverlayElementsMinus1[i] ; ++j) 842 { 843 Int maxLabelMinMaxValue = ( 1 << ( m_overlayElementLabelValueLengthMinus8 + 8 ) )-1; 844 xCheckCfgRange( wrongConfig, m_overlayElementLabelMin[i][j] , 0 , maxLabelMinMaxValue , "overlay_element_label_min" ); 845 xCheckCfgRange( wrongConfig, m_overlayElementLabelMax[i][j] , 0 , maxLabelMinMaxValue , "overlay_element_label_max" ); 846 } 847 } 848 xCheckCfgRange( wrongConfig, m_overlayInfoPersistenceFlag , 0 , 1, "overlay_info_persistence_flag" ); 882 849 883 850 return wrongConfig; 884 851 885 852 }; 886 #endif 853 887 854 888 855 Void SEITemporalMvPredictionConstraints::setupFromCfgFile(const Char* cfgFile) -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibCommon/SEI.h
r1339 r1342 803 803 }; 804 804 805 #if NH_MV_SEI_TBD806 805 class SEIOverlayInfo : public SEI 807 806 { 808 807 public: 809 808 PayloadType payloadType( ) const { return OVERLAY_INFO; } 810 SEIOverlayInfo ( ) { };809 SEIOverlayInfo ( ); 811 810 ~SEIOverlayInfo( ) { }; 812 811 SEI* getCopy( ) const { return new SEIOverlayInfo(*this); }; 813 812 814 Void setupFromCfgFile( const Char* cfgFile ); 815 Void setupFromSlice ( const TComSlice* slice ); 816 Bool checkCfg ( const TComSlice* slice ); 817 813 Void setupFromCfgFile( const Char* cfgFile ); 814 Bool checkCfg ( const TComSlice* slice ); 815 Void initStringElements ( ); 816 817 const Int m_numOverlaysMax; 818 const Int m_numOverlayElementsMax; 819 const Int m_numStringBytesMax; //incl. null termination byte 820 818 821 Bool m_overlayInfoCancelFlag; 819 822 Int m_overlayContentAuxIdMinus128; … … 831 834 IntAry1d m_numOverlayElementsMinus1; 832 835 IntAry2d m_overlayElementLabelMin; 833 IntAry2d m_overlayElementLabelMax; 834 Int m_overlayZeroBit; 835 IntAry1d m_overlayLanguage; 836 IntAry1d m_overlayName; 837 IntAry2d m_overlayElementName; 836 IntAry2d m_overlayElementLabelMax; 837 std::vector< std::string > m_overlayLanguage; 838 std::vector< std::string > m_overlayName; 839 std::vector< std::vector< std::string > > m_overlayElementName; 838 840 Bool m_overlayInfoPersistenceFlag; 839 841 }; 840 841 #endif842 842 843 843 class SEITemporalMvPredictionConstraints : public SEI -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibDecoder/SEIread.cpp
r1339 r1342 99 99 } 100 100 101 Void SEIReader::sei_read_string(std::ostream *pOS, UInt uiBufSize, UChar* pucCode, UInt& ruiLength, const Char *pSymbolName) 102 { 103 READ_STRING(uiBufSize, pucCode, ruiLength, pSymbolName); 104 if (pOS) 105 { 106 (*pOS) << " " << pSymbolName << ": " << (const char*) pucCode << "\n"; 107 } 108 } 109 101 110 #if NH_MV_SEI 102 111 inline Void SEIReader::output_sei_message_header(SEI &sei, std::ostream *pDecodedMessageOutputStream, UInt payloadSize) … … 340 349 xParseSEIAlphaChannelInfo((SEIAlphaChannelInfo&) *sei, payloadSize, pDecodedMessageOutputStream ); 341 350 break; 342 #if NH_MV_SEI_TBD343 351 case SEI::OVERLAY_INFO: 344 352 sei = new SEIOverlayInfo; 345 353 xParseSEIOverlayInfo((SEIOverlayInfo&) *sei, payloadSize, pDecodedMessageOutputStream ); 346 354 break; 347 #endif348 355 case SEI::TEMPORAL_MV_PREDICTION_CONSTRAINTS: 349 356 sei = new SEITemporalMvPredictionConstraints; … … 1357 1364 }; 1358 1365 1359 #if NH_MV_SEI_TBD1360 1366 Void SEIReader::xParseSEIOverlayInfo(SEIOverlayInfo& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream) 1361 1367 { … … 1366 1372 if( !sei.m_overlayInfoCancelFlag ) 1367 1373 { 1368 sei_read_uvlc( pDecodedMessageOutputStream, code, "overlay_content_aux_id_minus128" ); sei.m_overlayContentAuxIdMinus128 = code; 1369 sei_read_uvlc( pDecodedMessageOutputStream, code, "overlay_label_aux_id_minus128" ); sei.m_overlayLabelAuxIdMinus128 = code; 1370 sei_read_uvlc( pDecodedMessageOutputStream, code, "overlay_alpha_aux_id_minus128" ); sei.m_overlayAlphaAuxIdMinus128 = code; 1371 sei_read_uvlc( pDecodedMessageOutputStream, code, "overlay_element_label_value_length_minus8" ); sei.m_overlayElementLabelValueLengthMinus8 = code; 1372 sei_read_uvlc( pDecodedMessageOutputStream, code, "num_overlays_minus1" ); sei.m_numOverlaysMinus1 = code; 1373 for( Int i = 0; i <= NumOverlaysMinus1( ); i++ ) 1374 { 1375 sei_read_uvlc( pDecodedMessageOutputStream, code, "overlay_idx" ); sei.m_overlayIdx[i] = code; 1376 sei_read_flag( pDecodedMessageOutputStream, code, "language_overlay_present_flag" ); sei.m_languageOverlayPresentFlag[i] = (code == 1); 1377 sei_read_code( pDecodedMessageOutputStream, 6, code, "overlay_content_layer_id" ); sei.m_overlayContentLayerId[i] = code; 1378 sei_read_flag( pDecodedMessageOutputStream, code, "overlay_label_present_flag" ); sei.m_overlayLabelPresentFlag[i] = (code == 1); 1379 if( sei.m_overlayLabelPresentFlag( i ) ) 1380 { 1381 sei_read_code( pDecodedMessageOutputStream, 6, code, "overlay_label_layer_id" ); sei.m_overlayLabelLayerId[i] = code; 1382 } 1383 sei_read_flag( pDecodedMessageOutputStream, code, "overlay_alpha_present_flag" ); sei.m_overlayAlphaPresentFlag[i] = (code == 1); 1384 if( sei.m_overlayAlphaPresentFlag( i ) ) 1385 { 1386 sei_read_code( pDecodedMessageOutputStream, 6, code, "overlay_alpha_layer_id" ); sei.m_overlayAlphaLayerId[i] = code; 1387 } 1388 if( sei.m_overlayLabelPresentFlag( i ) ) 1389 { 1390 sei_read_uvlc( pDecodedMessageOutputStream, code, "num_overlay_elements_minus1" ); sei.m_numOverlayElementsMinus1[i] = code; 1391 for( Int j = 0; j <= sei.m_numOverlayElementsMinus1( i ); j++ ) 1392 { 1393 sei_read_code( pDecodedMessageOutputStream, getOverlayElementLabelMinLen ), code, "overlay_element_label_min" ); sei.m_overlayElementLabelMin[i][j] = code; 1394 sei_read_code( pDecodedMessageOutputStream, getOverlayElementLabelMaxLen ), code, "overlay_element_label_max" ); sei.m_overlayElementLabelMax[i][j] = code; 1395 } 1396 } 1397 } 1398 while( !ByteaLigned(() ) ); 1399 { 1400 sei_read_code( pDecodedMessageOutputStream, *equalto0*/f1, code, "overlay_zero_bit" ); sei.m_overlayZeroBit = code; 1401 } 1402 for( Int i = 0; i <= NumOverlaysMinus1( ); i++ ) 1403 { 1404 if( sei.m_languageOverlayPresentFlag( i ) ) 1405 { 1406 sei_read_code( pDecodedMessageOutputStream, tv, code, "overlay_language" ); sei.m_overlayLanguage[i] = code; 1407 } 1408 sei_read_code( pDecodedMessageOutputStream, tv, code, "overlay_name" ); sei.m_overlayName[i] = code; 1409 if( sei.m_overlayLabelPresentFlag( i ) ) 1410 { 1411 for( Int j = 0; j <= sei.m_numOverlayElementsMinus1( i ); j++ ) 1412 { 1413 sei_read_code( pDecodedMessageOutputStream, tv, code, "overlay_element_name" ); sei.m_overlayElementName[i][j] = code; 1414 } 1415 } 1416 } 1374 sei_read_uvlc( pDecodedMessageOutputStream, code, "overlay_content_aux_id_minus128" ); sei.m_overlayContentAuxIdMinus128 = code; 1375 sei_read_uvlc( pDecodedMessageOutputStream, code, "overlay_label_aux_id_minus128" ); sei.m_overlayLabelAuxIdMinus128 = code; 1376 sei_read_uvlc( pDecodedMessageOutputStream, code, "overlay_alpha_aux_id_minus128" ); sei.m_overlayAlphaAuxIdMinus128 = code; 1377 sei_read_uvlc( pDecodedMessageOutputStream, code, "overlay_element_label_value_length_minus8" ); sei.m_overlayElementLabelValueLengthMinus8 = code; 1378 sei_read_uvlc( pDecodedMessageOutputStream, code, "num_overlays_minus1" ); sei.m_numOverlaysMinus1 = code; 1379 1380 sei.m_overlayIdx.resize( sei.m_numOverlaysMinus1+1 ); 1381 sei.m_languageOverlayPresentFlag.resize( sei.m_numOverlaysMinus1+1 ); 1382 sei.m_overlayContentLayerId.resize ( sei.m_numOverlaysMinus1+1 ); 1383 sei.m_overlayLabelPresentFlag.resize ( sei.m_numOverlaysMinus1+1 ); 1384 sei.m_overlayLabelLayerId.resize ( sei.m_numOverlaysMinus1+1 ); 1385 sei.m_overlayAlphaPresentFlag.resize ( sei.m_numOverlaysMinus1+1 ); 1386 sei.m_overlayAlphaLayerId.resize ( sei.m_numOverlaysMinus1+1 ); 1387 sei.m_numOverlayElementsMinus1.resize ( sei.m_numOverlaysMinus1+1 ); 1388 sei.m_overlayElementLabelMin.resize ( sei.m_numOverlaysMinus1+1 ); 1389 sei.m_overlayElementLabelMax.resize ( sei.m_numOverlaysMinus1+1 ); 1390 for( Int i = 0; i <= sei.m_numOverlaysMinus1; i++ ) 1391 { 1392 sei_read_uvlc( pDecodedMessageOutputStream, code, "overlay_idx" ); sei.m_overlayIdx[i] = code; 1393 sei_read_flag( pDecodedMessageOutputStream, code, "language_overlay_present_flag" ); sei.m_languageOverlayPresentFlag[i] = (code == 1); 1394 sei_read_code( pDecodedMessageOutputStream, 6, code, "overlay_content_layer_id" ); sei.m_overlayContentLayerId[i] = code; 1395 sei_read_flag( pDecodedMessageOutputStream, code, "overlay_label_present_flag" ); sei.m_overlayLabelPresentFlag[i] = (code == 1); 1396 if( sei.m_overlayLabelPresentFlag[i] ) 1397 { 1398 sei_read_code( pDecodedMessageOutputStream, 6, code, "overlay_label_layer_id" ); sei.m_overlayLabelLayerId[i] = code; 1399 } 1400 sei_read_flag( pDecodedMessageOutputStream, code, "overlay_alpha_present_flag" ); sei.m_overlayAlphaPresentFlag[i] = (code == 1); 1401 if( sei.m_overlayAlphaPresentFlag[i] ) 1402 { 1403 sei_read_code( pDecodedMessageOutputStream, 6, code, "overlay_alpha_layer_id" ); sei.m_overlayAlphaLayerId[i] = code; 1404 } 1405 if( sei.m_overlayLabelPresentFlag[i] ) 1406 { 1407 sei_read_uvlc( pDecodedMessageOutputStream, code, "num_overlay_elements_minus1" ); sei.m_numOverlayElementsMinus1[i] = code; 1408 sei.m_overlayElementLabelMin[i].resize( sei.m_numOverlayElementsMinus1[i]+1 ); 1409 sei.m_overlayElementLabelMax[i].resize( sei.m_numOverlayElementsMinus1[i]+1 ); 1410 for( Int j = 0; j <= sei.m_numOverlayElementsMinus1[i]; j++ ) 1411 { 1412 sei_read_code( pDecodedMessageOutputStream, sei.m_overlayElementLabelValueLengthMinus8 + 8, code, "overlay_element_label_min" ); sei.m_overlayElementLabelMin[i][j] = code; 1413 sei_read_code( pDecodedMessageOutputStream, sei.m_overlayElementLabelValueLengthMinus8 + 8, code, "overlay_element_label_max" ); sei.m_overlayElementLabelMax[i][j] = code; 1414 } 1415 } 1416 } 1417 1418 // byte alignment 1419 while ( m_pcBitstream->getNumBitsRead() % 8 != 0 ) 1420 { 1421 sei_read_flag( pDecodedMessageOutputStream, code, "overlay_zero_bit" ); 1422 assert( code==0 ); 1423 } 1424 1425 UChar* sval = new UChar[sei.m_numStringBytesMax]; 1426 UInt slen; 1427 sei.m_overlayLanguage.resize( sei.m_numOverlaysMinus1 + 1 ); 1428 sei.m_overlayName.resize( sei.m_numOverlaysMinus1 + 1 ); 1429 sei.m_overlayElementName.resize( sei.m_numOverlaysMinus1 + 1 ); 1430 for( Int i = 0; i <= sei.m_numOverlaysMinus1; i++ ) 1431 { 1432 if( sei.m_languageOverlayPresentFlag[i] ) 1433 { 1434 sei_read_string(pDecodedMessageOutputStream, sei.m_numStringBytesMax, sval, slen, "overlay_language"); 1435 sei.m_overlayLanguage[i] = std::string((const char*) sval); 1436 } 1437 sei_read_string(pDecodedMessageOutputStream, sei.m_numStringBytesMax, sval, slen, "overlay_name"); 1438 sei.m_overlayName[i] = std::string((const char*) sval); 1439 if( sei.m_overlayLabelPresentFlag[i] ) 1440 { 1441 sei.m_overlayElementName[i].resize( sei.m_numOverlayElementsMinus1[i]+1 ); 1442 for( Int j = 0; j <= sei.m_numOverlayElementsMinus1[i]; j++ ) 1443 { 1444 sei_read_string(pDecodedMessageOutputStream, sei.m_numStringBytesMax, sval, slen, "overlay_element_name"); 1445 sei.m_overlayElementName[i][j] = std::string((const char*) sval); 1446 } 1447 } 1448 } 1449 delete [] sval; 1417 1450 sei_read_flag( pDecodedMessageOutputStream, code, "overlay_info_persistence_flag" ); sei.m_overlayInfoPersistenceFlag = (code == 1); 1418 } 1451 } 1419 1452 }; 1420 #endif1421 1453 1422 1454 Void SEIReader::xParseSEITemporalMvPredictionConstraints(SEITemporalMvPredictionConstraints& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream) -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibDecoder/SEIread.h
r1339 r1342 112 112 Void xParseSEISubBitstreamProperty (SEISubBitstreamProperty& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream); 113 113 Void xParseSEIAlphaChannelInfo (SEIAlphaChannelInfo& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream); 114 #if NH_MV_SEI_TBD115 114 Void xParseSEIOverlayInfo (SEIOverlayInfo& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream); 116 #endif117 115 Void xParseSEITemporalMvPredictionConstraints(SEITemporalMvPredictionConstraints& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream); 118 116 #if NH_MV_SEI_TBD … … 139 137 Void sei_read_svlc(std::ostream *pOS, Int& ruiCode, const Char *pSymbolName); 140 138 Void sei_read_flag(std::ostream *pOS, UInt& ruiCode, const Char *pSymbolName); 139 Void sei_read_string(std::ostream *pOS, UInt uiBufSize, UChar* pucCode, UInt& ruiLength, const Char *pSymbolName); 141 140 #if NH_MV_SEI 142 141 inline Void output_sei_message_header(SEI &sei, std::ostream *pDecodedMessageOutputStream, UInt payloadSize); -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibDecoder/SyntaxElementParser.cpp
r1313 r1342 152 152 } 153 153 154 Void SyntaxElementParser::xReadStringTr (UInt buSize, UChar *pValue, UInt& rLength, const Char *pSymbolName) 155 { 156 #if RExt__DECODER_DEBUG_BIT_STATISTICS 157 xReadString (buSize, pValue, rLength, pSymbolName); 158 #else 159 xReadString(buSize, pValue, rLength); 160 #endif 161 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 162 fprintf( g_hTrace, "%-50s st(v=%d) : %s\n", pSymbolName, rLength, pValue ); 163 fflush ( g_hTrace ); 164 } 165 154 166 Void xTraceAccessUnitDelimiter () 155 167 { … … 269 281 } 270 282 283 #if RExt__DECODER_DEBUG_BIT_STATISTICS 284 Void SyntaxElementParser::xReadString (UInt bufSize, UChar *pVal, UInt& rLength, const Char *pSymbolName) 285 #else 286 Void SyntaxElementParser::xReadString (UInt bufSize, UChar *pVal, UInt& rLength) 287 #endif 288 { 289 assert( m_pcBitstream->getNumBitsRead() % 8 == 0 ); //always start reading at a byte-aligned position 290 UInt val; 291 UInt i; 292 for (i=0 ; i<bufSize ; ++i ) 293 { 294 m_pcBitstream->readByte( val ); 295 pVal[i] = val; 296 if ( val == 0) 297 { 298 break; 299 } 300 } 301 rLength = i; 302 assert( pVal[rLength] == 0 ); 303 } 304 271 305 Void SyntaxElementParser::xReadRbspTrailingBits() 272 306 { -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibDecoder/SyntaxElementParser.h
r1313 r1342 49 49 #define READ_SVLC( code, name) xReadSvlcTr ( code, name ) 50 50 #define READ_FLAG( code, name) xReadFlagTr ( code, name ) 51 #define READ_STRING(bufSize, code, length, name) xReadStringTr ( bufSize, code, length, name ) 51 52 52 53 #else … … 58 59 #define READ_SVLC( code, name) xReadSvlc ( code, name ) 59 60 #define READ_FLAG( code, name) xReadFlag ( code, name ) 61 #define READ_STRING(bufSize, code, length, name) xReadString ( bufSize, code, length, name ) 60 62 61 63 #else … … 65 67 #define READ_SVLC( code, name) xReadSvlc ( code ) 66 68 #define READ_FLAG( code, name) xReadFlag ( code ) 69 #define READ_STRING(bufSize, code, length, name) xReadString ( bufSize, code, length ) 67 70 68 71 #endif … … 92 95 Void xReadSvlc ( Int& val, const Char *pSymbolName ); 93 96 Void xReadFlag ( UInt& val, const Char *pSymbolName ); 97 Void xReadString ( UInt bufSize, UChar *val, UInt& length, const Char *pSymbolName); 94 98 #else 95 99 Void xReadCode ( UInt length, UInt& val ); … … 97 101 Void xReadSvlc ( Int& val ); 98 102 Void xReadFlag ( UInt& val ); 103 Void xReadString ( UInt bufSize, UChar *val, UInt& length); 99 104 #endif 100 105 #if ENC_DEC_TRACE … … 103 108 Void xReadSvlcTr ( Int& rValue, const Char *pSymbolName); 104 109 Void xReadFlagTr ( UInt& rValue, const Char *pSymbolName); 110 Void xReadStringTr(UInt bufSize, UChar *pValue, UInt& rLength, const Char *pSymbolName); 105 111 #endif 106 112 public: -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibEncoder/SEIwrite.cpp
r1339 r1342 151 151 xWriteSEIAlphaChannelInfo(*static_cast<const SEIAlphaChannelInfo*>(&sei)); 152 152 break; 153 #if NH_MV_SEI_TBD154 153 case SEI::OVERLAY_INFO: 155 154 xWriteSEIOverlayInfo(*static_cast<const SEIOverlayInfo*>(&sei)); 156 155 break; 157 #endif158 156 case SEI::TEMPORAL_MV_PREDICTION_CONSTRAINTS: 159 157 xWriteSEITemporalMvPredictionConstraints(*static_cast<const SEITemporalMvPredictionConstraints*>(&sei)); … … 998 996 }; 999 997 1000 #if NH_MV_SEI_TBD1001 998 Void SEIWriter::xWriteSEIOverlayInfo( const SEIOverlayInfo& sei) 1002 999 { … … 1009 1006 WRITE_UVLC( sei.m_overlayElementLabelValueLengthMinus8, "overlay_element_label_value_length_minus8" ); 1010 1007 WRITE_UVLC( sei.m_numOverlaysMinus1, "num_overlays_minus1" ); 1011 for( Int i = 0; i <= NumOverlaysMinus1( ); i++ )1008 for( Int i = 0; i <= sei.m_numOverlaysMinus1 ; i++ ) 1012 1009 { 1013 1010 WRITE_UVLC( sei.m_overlayIdx[i], "overlay_idx" ); … … 1015 1012 WRITE_CODE( sei.m_overlayContentLayerId[i], 6, "overlay_content_layer_id" ); 1016 1013 WRITE_FLAG( ( sei.m_overlayLabelPresentFlag[i] ? 1 : 0 ), "overlay_label_present_flag" ); 1017 if( sei.m_overlayLabelPresentFlag ( i ))1014 if( sei.m_overlayLabelPresentFlag[i] ) 1018 1015 { 1019 1016 WRITE_CODE( sei.m_overlayLabelLayerId[i], 6, "overlay_label_layer_id" ); 1020 1017 } 1021 1018 WRITE_FLAG( ( sei.m_overlayAlphaPresentFlag[i] ? 1 : 0 ), "overlay_alpha_present_flag" ); 1022 if( sei.m_overlayAlphaPresentFlag ( i ))1019 if( sei.m_overlayAlphaPresentFlag[i] ) 1023 1020 { 1024 1021 WRITE_CODE( sei.m_overlayAlphaLayerId[i], 6, "overlay_alpha_layer_id" ); 1025 1022 } 1026 if( sei.m_overlayLabelPresentFlag ( i ))1023 if( sei.m_overlayLabelPresentFlag[i] ) 1027 1024 { 1028 1025 WRITE_UVLC( sei.m_numOverlayElementsMinus1[i], "num_overlay_elements_minus1" ); 1029 for( Int j = 0; j <= sei.m_numOverlayElementsMinus1( i ); j++ ) 1030 { 1031 WRITE_CODE( sei.m_overlayElementLabelMin[i][j], getOverlayElementLabelMinLen ), "overlay_element_label_min" ); 1032 WRITE_CODE( sei.m_overlayElementLabelMax[i][j], getOverlayElementLabelMaxLen ), "overlay_element_label_max" ); 1033 } 1034 } 1035 } 1036 while( !ByteaLigned(() ) ); 1037 { 1038 WRITE_CODE( sei.m_overlayZeroBit, *equalto0*/f1, "overlay_zero_bit" ); 1039 } 1040 for( Int i = 0; i <= NumOverlaysMinus1( ); i++ ) 1041 { 1042 if( sei.m_languageOverlayPresentFlag( i ) ) 1043 { 1044 WRITE_CODE( sei.m_overlayLanguage[i], tv, "overlay_language" ); 1045 } 1046 WRITE_CODE( sei.m_overlayName[i], tv, "overlay_name" ); 1047 if( sei.m_overlayLabelPresentFlag( i ) ) 1048 { 1049 for( Int j = 0; j <= sei.m_numOverlayElementsMinus1( i ); j++ ) 1050 { 1051 WRITE_CODE( sei.m_overlayElementName[i][j], tv, "overlay_element_name" ); 1026 for( Int j = 0; j <= sei.m_numOverlayElementsMinus1[i]; j++ ) 1027 { 1028 WRITE_CODE( sei.m_overlayElementLabelMin[i][j], (sei.m_overlayElementLabelValueLengthMinus8 + 8), "overlay_element_label_min" ); 1029 WRITE_CODE( sei.m_overlayElementLabelMax[i][j], (sei.m_overlayElementLabelValueLengthMinus8 + 8), "overlay_element_label_max" ); 1030 } 1031 } 1032 } 1033 1034 // byte alignment 1035 while ( m_pcBitIf->getNumberOfWrittenBits() % 8 != 0 ) 1036 { 1037 WRITE_FLAG( 0, "overlay_zero_bit" ); 1038 } 1039 1040 UChar* stmp; 1041 UInt ilength; 1042 for( Int i = 0; i <= sei.m_numOverlaysMinus1; i++ ) 1043 { 1044 if( sei.m_languageOverlayPresentFlag[i] ) 1045 { 1046 stmp = (UChar*) strdup( sei.m_overlayLanguage[i].c_str() ); 1047 ilength = (UInt) sei.m_overlayLanguage[i].size(); 1048 WRITE_STRING( stmp, ilength, "overlay_language" ); 1049 free(stmp); 1050 } 1051 stmp = (UChar*) strdup( sei.m_overlayName[i].c_str() ); 1052 ilength = (UInt) sei.m_overlayName[i].size(); 1053 WRITE_STRING( stmp, ilength, "overlay_name" ); 1054 free(stmp); 1055 if( sei.m_overlayLabelPresentFlag[i] ) 1056 { 1057 for( Int j = 0; j <= sei.m_numOverlayElementsMinus1[i]; j++ ) 1058 { 1059 stmp = (UChar*) strdup( sei.m_overlayElementName[i][j].c_str() ); 1060 ilength = (UInt) sei.m_overlayElementName[i][j].size(); 1061 WRITE_STRING( stmp, ilength, "overlay_element_name" ); 1062 free(stmp); 1052 1063 } 1053 1064 } 1054 1065 } 1055 1066 WRITE_FLAG( ( sei.m_overlayInfoPersistenceFlag ? 1 : 0 ), "overlay_info_persistence_flag" ); 1056 } 1067 } 1057 1068 }; 1058 #endif1059 1069 1060 1070 Void SEIWriter::xWriteSEITemporalMvPredictionConstraints( const SEITemporalMvPredictionConstraints& sei) -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibEncoder/SEIwrite.h
r1339 r1342 94 94 Void xWriteSEISubBitstreamProperty ( const SEISubBitstreamProperty& sei); 95 95 Void xWriteSEIAlphaChannelInfo ( const SEIAlphaChannelInfo& sei); 96 #if NH_MV_SEI_TBD97 96 Void xWriteSEIOverlayInfo ( const SEIOverlayInfo& sei); 98 #endif99 97 Void xWriteSEITemporalMvPredictionConstraints ( const SEITemporalMvPredictionConstraints& sei); 100 98 #if NH_MV_SEI_TBD -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibEncoder/SyntaxElementWriter.cpp
r1313 r1342 127 127 } 128 128 129 Void SyntaxElementWriter::xWriteStringTr( UChar* value, UInt length, const Char *pSymbolName) 130 { 131 xWriteString(value, length); 132 if( g_HLSTraceEnable ) 133 { 134 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 135 fprintf( g_hTrace, "%-50s st(v=%d) : %s\n", pSymbolName, length, value ); 136 } 137 } 138 129 139 #endif 130 140 … … 166 176 } 167 177 178 Void SyntaxElementWriter::xWriteString( UChar* sCode, UInt uiLength) 179 { 180 assert(m_pcBitIf->getNumberOfWrittenBits() % 8 == 0 ); 181 for (Int i=0 ; i<uiLength; i++) 182 { 183 m_pcBitIf->write( sCode[i], 8 ); 184 } 185 m_pcBitIf->write( 0, 8 ); //zero-termination byte 186 } 187 168 188 Void SyntaxElementWriter::xWriteRbspTrailingBits() 169 189 { -
branches/HTM-15.1-dev0-Disney/source/Lib/TLibEncoder/SyntaxElementWriter.h
r1313 r1342 56 56 #define WRITE_SVLC( value, name) xWriteSvlcTr ( value, name ) 57 57 #define WRITE_FLAG( value, name) xWriteFlagTr ( value, name ) 58 #define WRITE_STRING( value, length, name) xWriteStringTr( value, length, name ) 58 59 59 60 #else … … 63 64 #define WRITE_SVLC( value, name) xWriteSvlc ( value ) 64 65 #define WRITE_FLAG( value, name) xWriteFlag ( value ) 66 #define WRITE_STRING( value, length, name) xWriteString( value, length ) 65 67 66 68 #endif … … 82 84 Void xWriteSvlc ( Int iCode ); 83 85 Void xWriteFlag ( UInt uiCode ); 86 Void xWriteString ( UChar* sCode, UInt uiLength); 84 87 #if ENC_DEC_TRACE 85 88 Void xWriteCodeTr ( UInt value, UInt length, const Char *pSymbolName); … … 87 90 Void xWriteSvlcTr ( Int value, const Char *pSymbolName); 88 91 Void xWriteFlagTr ( UInt value, const Char *pSymbolName); 92 Void xWriteStringTr ( UChar* value, UInt length, const Char *pSymbolName); 89 93 #endif 90 94 Void xWriteRbspTrailingBits();
Note: See TracChangeset for help on using the changeset viewer.