}
for (i=0; i<pC->uiClipNumber; i++) {
- if ((pC->pClipList[i].ClipProperties.VideoStreamType !=
- pC->xVSS.outputVideoFormat)||
- (pC->pClipList[i].ClipProperties.uiVideoWidth !=
- pC->ewc.uiVideoWidth) ||
- (pC->pClipList[i].ClipProperties.uiVideoHeight !=
- pC->ewc.uiVideoHeight) ||
- (pC->pClipList[i].ClipProperties.VideoStreamType ==
- M4VIDEOEDITING_kH264) ||
- (pC->pClipList[i].ClipProperties.VideoStreamType ==
- M4VIDEOEDITING_kMPEG4 &&
- pC->pClipList[i].ClipProperties.uiVideoTimeScale !=
- pC->ewc.uiVideoTimeScale)) {
- pC->pClipList[i].bTranscodingRequired = M4OSA_TRUE;
+ if (pC->pClipList[i].bTranscodingRequired == M4OSA_FALSE) {
+ /** If not transcoded in Analysis phase, check
+ * if transcoding required now
+ */
+ if ((pC->pClipList[i].ClipProperties.VideoStreamType !=
+ pC->xVSS.outputVideoFormat)||
+ (pC->pClipList[i].ClipProperties.uiVideoWidth !=
+ pC->ewc.uiVideoWidth) ||
+ (pC->pClipList[i].ClipProperties.uiVideoHeight !=
+ pC->ewc.uiVideoHeight) ||
+ (pC->pClipList[i].ClipProperties.VideoStreamType ==
+ M4VIDEOEDITING_kH264) ||
+ (pC->pClipList[i].ClipProperties.VideoStreamType ==
+ M4VIDEOEDITING_kMPEG4 &&
+ pC->pClipList[i].ClipProperties.uiVideoTimeScale !=
+ pC->ewc.uiVideoTimeScale)) {
+ pC->pClipList[i].bTranscodingRequired = M4OSA_TRUE;
+ }
+ } else {
+ /** If bTranscodingRequired is true, it means the clip has
+ * been transcoded in Analysis phase.
+ */
+ pC->pClipList[i].bTranscodingRequired = M4OSA_FALSE;
}
}
/**
/* RC: to delete unecessary temp files on the fly */
#include "M4VSS3GPP_InternalTypes.h"
+#include <utils/Log.h>
/**
******************************************************************************
audioIsDifferent = M4OSA_FALSE;
}
}
+ /* 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) */
+ if ((fileProperties.uiVideoProfile >
+ xVSS_context->pSettings->xVSS.outputVideoProfile) ||
+ (fileProperties.uiVideoLevel >
+ xVSS_context->pSettings->xVSS.outputVideoLevel)) {
+ /* Set bTranscodingRequired to TRUE to indicate the video will be
+ * transcoded in MCS. */
+ xVSS_context->pSettings->pClipList[i]->bTranscodingRequired =
+ M4OSA_TRUE;
+ videoIsDifferent = M4OSA_TRUE;
+ }
if( videoIsDifferent == M4OSA_TRUE || audioIsDifferent == M4OSA_TRUE)
{
return err;
}
int32_t index = xVSS_context->pMCScurrentParams->videoclipnumber;
- if(xVSS_context->pSettings->pClipList[index]->bTranscodingRequired
- == M4OSA_FALSE) {
- /*the cuts are done in the MCS, so we need to replace
- the beginCutTime and endCutTime to keep the entire video*/
- xVSS_context->pSettings->pClipList[index]->uiBeginCutTime = 0;
- xVSS_context->pSettings->pClipList[index]->uiEndCutTime = 0;
- }
+
+ /* The cuts are done in the MCS, so we need to replace
+ the beginCutTime and endCutTime to keep the entire video*/
+ xVSS_context->pSettings->pClipList[index]->uiBeginCutTime = 0;
+ xVSS_context->pSettings->pClipList[index]->uiEndCutTime = 0;
+
M4OSA_TRACE1_1("M4xVSS_Step: \
M4xVSS_internalStartTranscoding returned \