Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
6 Views

On the issue of setting BRefType in sample_multi_transcode

      I set the BRefType in mfxStatus CTranscodingPipeline::InitEncMfxParams(sInputParams *pInParams), and m_mfxEncParams.mfx.GopRefDist =6, but the video showed blurred screen after transcoding. but when m_mfxEncParams.mfx.GopRefDist = 4, the video is ok

mfxStatus CTranscodingPipeline::InitEncMfxParams(sInputParams *pInParams)
{
    MSDK_CHECK_POINTER(pInParams,  MFX_ERR_NULL_PTR);
    MSDK_MEMCPY_VAR(m_mfxEncParams.mfx.FrameInfo, &m_mfxDecParams.mfx.FrameInfo, sizeof(mfxFrameInfo));

    m_mfxEncParams.mfx.RateControlMethod = MFX_RATECONTROL_CQP;
    m_mfxEncParams.mfx.QPI = 25;
    m_mfxEncParams.mfx.QPP = 28;
    m_mfxEncParams.mfx.QPB = 37;

    m_mfxEncParams.mfx.CodecId   = MFX_CODEC_AVC;
    m_mfxEncParams.mfx.TargetUsage = 1;
    m_mfxEncParams.AsyncDepth = 1;
    m_mfxEncParams.mfx.CodecProfile = 100;
    m_mfxEncParams.mfx.FrameInfo.PicStruct = MFX_PICSTRUCT_PROGRESSIVE;
    m_mfxEncParams.mfx.GopPicSize = 48;
    m_mfxEncParams.mfx.GopRefDist = 6;
    m_mfxEncParams.mfx.GopOptFlag = 1;
    m_mfxEncParams.mfx.CodecId = MFX_CODEC_AVC;
    m_mfxEncParams.mfx.FrameInfo.FrameRateExtN = 25;
    m_mfxEncParams.mfx.FrameInfo.FrameRateExtD = 1;
    m_mfxEncParams.mfx.EncodedOrder  = 0;
    m_mfxEncParams.mfx.FrameInfo.FourCC = MFX_FOURCC_NV12;
    m_mfxEncParams.mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
    m_mfxEncParams.mfx.NumSlice = 1;

    // leave PAR unset to avoid MPEG2 encoder rejecting streams with unsupported DAR
    m_mfxEncParams.mfx.FrameInfo.AspectRatioW = m_mfxEncParams.mfx.FrameInfo.AspectRatioH = 0;


    m_mfxEncParams.mfx.FrameInfo.CropX = 0;
    m_mfxEncParams.mfx.FrameInfo.CropY = 0;

    m_mfxEncParams.IOPattern = MFX_IOPATTERN_IN_OPAQUE_MEMORY;

    
        m_CodingOption2.LookAheadDepth = 48;//pInParams->nLADepth;
        m_CodingOption2.MaxSliceSize = pInParams->nMaxSliceSize;
        m_CodingOption2.BRefType = MFX_B_REF_PYRAMID;
        m_CodingOption2.Trellis = MFX_TRELLIS_P;
        m_EncExtParams.push_back((mfxExtBuffer *)&m_CodingOption2);
       

    if (m_bUseOpaqueMemory)
        m_EncExtParams.push_back((mfxExtBuffer *)&m_EncOpaqueAlloc);

    if (!m_EncExtParams.empty())
    {
        m_mfxEncParams.ExtParam = &m_EncExtParams[0]; // vector is stored linearly in memory
        m_mfxEncParams.NumExtParam = (mfxU16)m_EncExtParams.size();
    }
    if (m_pParentPipeline)
    {
        m_pParentPipeline->AddLaStreams(m_mfxEncParams.mfx.FrameInfo.Width,m_mfxEncParams.mfx.FrameInfo.Height);
    }
    return MFX_ERR_NONE;
}

and my system informations as follow:

CPU: 4  Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz

GPU: 00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)

Operating System:CentOS Linux release 7.0.1406 (Core)

Kernel information : Linux version 3.10.0-123.9.3.29404.MSSr3.el7.x86_64

Software Products:  Intel Media Server Studio Essentials 2015 and SDK API version is 1.13

0 Kudos
0 Replies