Changeset 1342 in 3DVCSoftware for branches/HTM-15.1-dev0-Disney/source/Lib/TLibEncoder
- Timestamp:
- 1 Oct 2015, 15:54:17 (9 years ago)
- Location:
- branches/HTM-15.1-dev0-Disney/source/Lib/TLibEncoder
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
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.