diff options
Diffstat (limited to 'libvideoeditor')
-rwxr-xr-x | libvideoeditor/vss/mcs/src/M4MCS_API.c | 7 | ||||
-rwxr-xr-x | libvideoeditor/vss/src/M4xVSS_API.c | 9 | ||||
-rwxr-xr-x | libvideoeditor/vss/stagefrightshells/src/VideoEditorAudioDecoder.cpp | 11 |
3 files changed, 24 insertions, 3 deletions
diff --git a/libvideoeditor/vss/mcs/src/M4MCS_API.c b/libvideoeditor/vss/mcs/src/M4MCS_API.c index b48dfe7..2ac0be1 100755 --- a/libvideoeditor/vss/mcs/src/M4MCS_API.c +++ b/libvideoeditor/vss/mcs/src/M4MCS_API.c @@ -10575,6 +10575,13 @@ M4OSA_ERR M4MCS_intCheckAndGetCodecProperties( pC->pReaderAudioStream, pC->m_pCurrentAudioDecoderUserData); } + if (M4NO_ERROR != err) { + + M4OSA_TRACE1_1( + "M4MCS_intCheckAndGetCodecProperties: m_pFctCreateAudioDec \ + returns 0x%x", err); + return err; + } pC->m_pAudioDecoder->m_pFctSetOptionAudioDec(pC->pAudioDecCtxt, M4AD_kOptionID_3gpReaderInterface, (M4OSA_DataOption) pC->m_pReaderDataIt); diff --git a/libvideoeditor/vss/src/M4xVSS_API.c b/libvideoeditor/vss/src/M4xVSS_API.c index de69cd1..37b2e47 100755 --- a/libvideoeditor/vss/src/M4xVSS_API.c +++ b/libvideoeditor/vss/src/M4xVSS_API.c @@ -2432,12 +2432,15 @@ M4OSA_ERR M4xVSS_SendCommand( M4OSA_Context pContext, } } /* Here check the clip video profile and level, if it exceeds - * the profile and level of export file, then the file need - * to be transcoded(do not do compress domain trim) */ + * the profile and level of export file, then the file needs + * to be transcoded(do not do compress domain trim). + * Also for MPEG4 fomart, always do transcoding since HW encoder + * may use different time scale value than the input clip*/ if ((fileProperties.uiVideoProfile > xVSS_context->pSettings->xVSS.outputVideoProfile) || (fileProperties.uiVideoLevel > - xVSS_context->pSettings->xVSS.outputVideoLevel)) { + xVSS_context->pSettings->xVSS.outputVideoLevel) || + (fileProperties.VideoStreamType == M4VIDEOEDITING_kMPEG4)) { /* Set bTranscodingRequired to TRUE to indicate the video will be * transcoded in MCS. */ xVSS_context->pSettings->pClipList[i]->bTranscodingRequired = diff --git a/libvideoeditor/vss/stagefrightshells/src/VideoEditorAudioDecoder.cpp b/libvideoeditor/vss/stagefrightshells/src/VideoEditorAudioDecoder.cpp index d73352a..38e667c 100755 --- a/libvideoeditor/vss/stagefrightshells/src/VideoEditorAudioDecoder.cpp +++ b/libvideoeditor/vss/stagefrightshells/src/VideoEditorAudioDecoder.cpp @@ -341,9 +341,20 @@ M4OSA_ERR VideoEditorAudioDecoder_parse_AAC_DSI(M4OSA_Int8* pDSI, VIDEOEDITOR_CHECK(M4NO_ERROR == err, err); switch( result ) { case 2: + /* Audio Object Type is 2 (AAC Low Complexity) */ pProperties->aPSPresent = 0; pProperties->aSBRPresent = 0; break; + case 5: + /* Audio Object Type is 5 (Spectral Band Replication) */ + pProperties->aPSPresent = 0; + pProperties->aSBRPresent = 1; + break; + case 29: + /* Audio Object Type is 29 (Parametric Stereo) */ + pProperties->aPSPresent = 1; + pProperties->aSBRPresent = 1; + break; default: LOGV("parse_AAC_DSI ERROR : object type %d is not supported", result); |