Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eaf349aa authored by Rajneesh Chowdury's avatar Rajneesh Chowdury
Browse files

Fix for 5205420 compression domain trimming fallback mechanism

Transcode if clip's profile or level exceeds encoder's supported
profile or level.

Change-Id: Ib2f678828a58657b095ef6ef219fd0aa2bdccf91
parent 738a6626
Loading
Loading
Loading
Loading
+23 −13
Original line number Diff line number Diff line
@@ -1047,6 +1047,10 @@ M4OSA_ERR M4VSS3GPP_editOpen( M4VSS3GPP_EditContext pContext,
    }

    for (i=0; i<pC->uiClipNumber; i++) {
        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 !=
@@ -1061,6 +1065,12 @@ M4OSA_ERR M4VSS3GPP_editOpen( M4VSS3GPP_EditContext pContext,
                    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;
        }
    }
    /**
    * We produce a 3gpp file, unless it is mp3 */
+20 −7
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ Begin of xVSS API

/* RC: to delete unecessary temp files on the fly */
#include "M4VSS3GPP_InternalTypes.h"
#include <utils/Log.h>

/**
 ******************************************************************************
@@ -2430,6 +2431,19 @@ M4OSA_ERR M4xVSS_SendCommand( M4OSA_Context pContext,
                    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)
            {
@@ -5799,13 +5813,12 @@ M4OSA_ERR M4xVSS_Step( M4OSA_Context pContext, M4OSA_UInt8 *pProgress )
                            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 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 \