@@ -57,7 +57,7 @@ void CAgoraMetaDataObserver::onMetadataReceived(const Metadata &metadata)
5757 recvMetaData->uid = metadata.uid ;
5858 recvMetaData->timeStampMs = metadata.timeStampMs ;
5959 if (metadata.size > 0 ) {
60- recvMetaData->buffer = new unsigned char [metadata.size ];
60+ recvMetaData->buffer = new unsigned char [metadata.size + 1 ];
6161 memcpy_s (recvMetaData->buffer , metadata.size , metadata.buffer , metadata.size );
6262 recvMetaData->buffer [metadata.size ] = 0 ;
6363 }
@@ -456,17 +456,17 @@ LRESULT CAgoraMetaDataDlg::OnEIDRemoteVideoStateChanged(WPARAM wParam, LPARAM lP
456456LRESULT CAgoraMetaDataDlg::OnEIDMetadataReceived (WPARAM wParam, LPARAM lParam)
457457{
458458 IMetadataObserver::Metadata* metaData = (IMetadataObserver::Metadata*)wParam;
459- CString strInfo;
460- strInfo.Format (_T (" onMetadataReceived:uid:%u, ts=%d, size:%d." ), metaData->uid , metaData->timeStampMs , metaData->size );
459+ CString strInfo;
460+ strInfo.Format (_T (" onMetadataReceived:uid:%u, ts=%d, size:%d." ), metaData->uid , metaData->timeStampMs , metaData->size );
461461
462- if (metaData->size > 0 ) {
463- CString str;
464- TCHAR szBuf[2 * MAX_PATH ] = { 0 };
465- MultiByteToWideChar (CP_UTF8 , MB_USEGLYPHCHARS , std::string ((char *)metaData->buffer ).c_str (), 2 * MAX_PATH , szBuf, 2 * MAX_PATH );
466- str.Format (_T (" Info: %s" ), CString (szBuf));
467- strInfo += str;
468- }
462+ if (metaData->size > 0 ) {
463+ CString str;
464+ str.Format (_T (" Info: %s" ), utf82cs ((char *)metaData->buffer ));
465+ strInfo += str;
466+ }
469467 m_edtRecvSEI.SetWindowText (strInfo);
468+ delete metaData->buffer ;
469+ delete metaData;
470470 return 0 ;
471471}
472472
0 commit comments