summaryrefslogtreecommitdiffstats
path: root/libvideoeditor
diff options
context:
space:
mode:
Diffstat (limited to 'libvideoeditor')
-rwxr-xr-xlibvideoeditor/vss/mcs/src/M4MCS_API.c7
-rwxr-xr-xlibvideoeditor/vss/src/M4xVSS_API.c9
-rwxr-xr-xlibvideoeditor/vss/stagefrightshells/src/VideoEditorAudioDecoder.cpp11
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);