This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

encode demo frame rate problem..

Hello,

I'm almost there!!! I am now blocked by a tiny tiny issue, but, is becoming very critical, as it's blocking us...

In short, I capture 25 fps, but, only encode 1 in 4. Which is approx 6-7 fps. However, when I play it back (using VLC fro example), it plays back at 29.97 fps....

My encoder params, are below.

What am I over-looking??? Any ideas will be appreciated as we are completely stuck...

Thanks in advance,

Amjad.

 

 

 

void getEncParams_Create(IMP4VENC_Params *params)
{
 params->videncParams.rateControlPreset  = IVIDEO_LOW_DELAY ;
 params->videncParams.maxWidth     =    352 ;
 params->videncParams.maxHeight    =    288 ;
 params->videncParams.maxFrameRate   =   7000 ;
 params->videncParams.maxBitRate   =  64000 ;

 /*Codec specific extended parameters */
 params->intraFrameInterval     =     20 ;
 params->rcQ_MAX       =     31 ;
 params->rcQ_MIN       =      1 ;
 params->rotation       =      0 ;
 params->VBV_size       =  10000 ;

 params->subWindowWidth   = params->videncParams.maxWidth;
 params->subWindowHeight  = params->videncParams.maxHeight;

 params->videncParams.size = sizeof(IMP4VENC_Params) ;
 params->videncParams.encodingPreset = XDM_USER_DEFINED;
 params->videncParams.maxInterFrameInterval = XDM_DEFAULT;
 params->videncParams.reconChromaFormat = XDM_DEFAULT;
 params->videncParams.inputContentType = XDM_DEFAULT;
 params->videncParams.dataEndianness = XDM_DEFAULT;
 params->videncParams.inputChromaFormat = 4 ;
 params->intraDcVlcThr = 0 ;
 params->meRange = 31 ;
 params->intraThres = 200 ;
 params->intraAlgo = 0 ;
 params->numMBRows = 5 ;
 params->initQ = 0 ;
 params->rateFix = 1 ;
 params->rateFixRange = 1 ;
 params->meAlgo = 0 ;
 params->SkipMBAlgo = 0 ;
 params->UMV = 0 ;
 params->IIDC = 0 ;
 params->InitQ_P = 0 ;
 params->SVH = 1 ;
}

void getEncParams_Control(VIDENC1_DynamicParams *params)
{
 params->size                = sizeof(VIDENC1_DynamicParams);
 params->inputWidth          =    352;
 params->inputHeight         =    288;
 params->targetBitRate       =  64000;
 params->intraFrameInterval  =     20;
 params->targetFrameRate  =   7000;
 params->refFrameRate     =   7000;
 params->generateHeader      = XDM_ENCODE_AU;
 params->captureWidth        =      0;
}

 

  • I do not believe encoded elementary stream has any frame rate information, hence it will be played back at whatever rate the VLC player is configured to play back at or default to playing back as fast as the decoder can decode the stream. 

    [edit] refresh rate information is typically included in the trasnport stream; you will likely need to add appropriate transport stream information in software. 

  • Of course! I had a look at my app that I use to create 3gp files, and managed to change the code so that i can now modify the frame rate.

    Thank you.