<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Update:   in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/H264-Encoder-w-ipp-samples-p-7-1-1-013-problem-with-b-frames/m-p/973732#M20762</link>
    <description>&lt;P&gt;Update:&amp;nbsp; &lt;BR /&gt;&lt;BR /&gt;with these params a crash happens always when few frames are sent to encoder:&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input:&amp;nbsp;&amp;nbsp;&amp;nbsp; yuv420 interlaced 1440x1080&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;coding_type=1;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // interlaced &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;B_frame_rate=2;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // b frame rate 2&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;By tracing in debug mode, the crash happens here in UMC, it looks like a bug:&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;umc_h264_me.cpp&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;line 811&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;gt; ref_mvs is declared as NULL&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264MotionVector* ref_mvs = NULL;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; H264EncoderFrame&amp;lt;PIXTYPE&amp;gt; *prev_frame =&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; core_enc-&amp;gt;m_is_cur_pic_afrm?&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FindDirectRefIdxMBAFF(mb_col, uMB,block_col, pGetMBFieldDecodingFlag(curr_slice-&amp;gt;m_cur_mb.GlobalMacroblockInfo),pRefPicList0,pRefPicList1, mv_col, ref_idx_l0, curr_slice-&amp;gt;num_ref_idx_l0_active, core_enc-&amp;gt;m_MaxSliceSize)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;BR /&gt;&lt;STRONG&gt;&amp;gt; if is_cur_mb_field==1 ref_mvs is correctly initialized calling FindDirectRefIdx&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;gt; but if is_cur_mb_field==0 then it remains NULL&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (is_cur_mb_field!=0)?&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FindDirectRefIdxFLD(mb_col, block_col, pRefPicList0,pRefPicList1, pFields0, pFields1, mv_col, ref_idx_l0,curr_slice-&amp;gt;num_ref_idx_l0_active, core_enc-&amp;gt;m_MaxSliceSize)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FindDirectRefIdx(curr_slice, mb_col, block_col, pRefPicList0,pRefPicList1, &amp;amp;ref_mvs, ref_idx_l0, curr_slice-&amp;gt;num_ref_idx_l0_active);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!prev_frame) return false; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;STRONG&gt;&amp;gt; commented out line initializing ref_mvs (?&lt;/STRONG&gt;)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; H264MotionVector&amp;nbsp; *ref_mvs = &amp;amp;futr_frame-&amp;gt;m_mbinfo.MV[LIST_0][mb_col].MotionVectors[block_col];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ref_direct_l0[sb_pos] = ref_idx_l0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ref_direct_l0[sb_pos + 1] = ref_idx_l0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ref_direct_l0[sb_pos + 4] = ref_idx_l0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ref_direct_l0[sb_pos + 5] = ref_idx_l0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Ipp32s uFwdRatio = pGetMBFieldDecodingFlag(curr_slice-&amp;gt;m_cur_mb.GlobalMacroblockInfo)?&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; curr_slice-&amp;gt;DistScaleFactorMVAFF[uMB&amp;amp;1][uMB&amp;amp;1][(uMB&amp;amp;1)^(ref_idx_l0&amp;amp;1)][ref_idx_l0 &amp;gt;&amp;gt; 1] //FIXME&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; : curr_slice-&amp;gt;DistScaleFactorMV[ref_idx_l0][0];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (Ipp32s ypos = 0; ypos &amp;lt; 2; ypos++) // 4 4x4 blocks&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (Ipp32s xpos = 0; xpos &amp;lt; 2; xpos++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&lt;STRONG&gt;&amp;gt; here ref_mvs may be NULL and program crash&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; H264MotionVector mv_col = core_enc-&amp;gt;m_SeqParamSet.direct_8x8_inference_flag ? *ref_mvs :&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; *(ref_mvs + ypos*4 + xpos);&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I "solved" it changing the commented out line :&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264MotionVector&amp;nbsp; *ref_mvs = &amp;amp;futr_frame-&amp;gt;m_mbinfo.MV[LIST_0][mb_col].MotionVectors[block_col];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ref_mvs==NULL)&amp;nbsp; ref_mvs = &amp;amp;futr_frame-&amp;gt;m_mbinfo.MV[LIST_0][mb_col].MotionVectors[block_col];&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I don't know if this solved anything or may be it brokes the encoder, could the programmerd check this?&lt;/P&gt;</description>
    <pubDate>Mon, 12 Aug 2013 21:35:18 GMT</pubDate>
    <dc:creator>sdi_3</dc:creator>
    <dc:date>2013-08-12T21:35:18Z</dc:date>
    <item>
      <title>H264 Encoder w_ipp-samples_p_7.1.1.013  problem with b frames</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/H264-Encoder-w-ipp-samples-p-7-1-1-013-problem-with-b-frames/m-p/973731#M20761</link>
      <description>&lt;P&gt;Hi, &lt;BR /&gt;&lt;BR /&gt;Im trying to upgrate the H264Encoder and MP4Muxer to UMC w_ipp-samples_p_7.1.1.013 with registered IPP 7.1. I made a small code to encode and mux 30 YUV420 raw frames, 1280x720. Many variables are changed and the manual seems to be outdated, after some guessing I got the thing almost working.&lt;BR /&gt;&lt;BR /&gt;After inicialize all, if not using B frames it works fine:&lt;BR /&gt;&lt;BR /&gt;-H264Encoder not using B frames:&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;chroma_format_idc=1;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 1 - YUV420&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;coding_type=0;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 0 - Frame (all frames are coded as frames) 1 - Fields &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;profile_idc=100;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;B_frame_rate=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;B_reference_mode=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;num_ref_frames=1;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Maximum number of reference frames....&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;level_idc=0;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //level_idc value according to the standard. Set 0 for automatic level_idc computation.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;key_interval=12;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Distance between two sequential I frames. &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;idr_interval=0; // Must be greater or equal to 0. &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;the output file plays fine in all players and checked with a h264 tool shows correctly the frame estructure IP...PI, using different H264Params-&amp;gt;key_interval works fine.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;-H264Encoder using B frames&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;chroma_format_idc=1;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 1 - YUV420&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;coding_type=0;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 0 - Frame (all frames are coded as frames) 1 - Fields &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;profile_idc=100;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;B_frame_rate=2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;B_reference_mode=3;&amp;nbsp;&amp;nbsp;&amp;nbsp; // tested 0 1 2 3 4 ...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;num_ref_frames=2;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Maximum number of reference frames. &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;level_idc=0;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //level_idc value according to the standard. 0 for automatic level_idc computation.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;key_interval=12;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Distance between two sequential I frames. &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;idr_interval=0; // Must be greater or equal to 0. &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;encoder crashes after 10-12 frames feed, heap corruption detected, tested several times always crash,&lt;BR /&gt;&lt;BR /&gt;changing Params-&amp;gt;key_interval=14; the output video is ok, but the frame sequence is IPBBPBBPBBPBBPBPI first I=0 second I=16 , it should be 14 frames between I, not 15&lt;BR /&gt;&lt;BR /&gt;changing Params-&amp;gt;key_interval=13; the output video is ok, but the frame sequence is exactly the same as 14&lt;BR /&gt;&lt;BR /&gt;changing Params-&amp;gt;key_interval=11; always crash heap corruption detected&lt;BR /&gt;&lt;BR /&gt;changing Params-&amp;gt;key_interval=21;&amp;nbsp; and also other values,&amp;nbsp; video cannot be played in qt/windows media player, but the h264 inspector shows correct GOP&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;is something wrong with the params? or what?&lt;BR /&gt;&lt;BR /&gt;I can provide all the code and a vc2008 project.&lt;BR /&gt;&lt;BR /&gt;thanks in advance&lt;/P&gt;</description>
      <pubDate>Mon, 12 Aug 2013 07:27:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/H264-Encoder-w-ipp-samples-p-7-1-1-013-problem-with-b-frames/m-p/973731#M20761</guid>
      <dc:creator>sdi_3</dc:creator>
      <dc:date>2013-08-12T07:27:03Z</dc:date>
    </item>
    <item>
      <title>Update: </title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/H264-Encoder-w-ipp-samples-p-7-1-1-013-problem-with-b-frames/m-p/973732#M20762</link>
      <description>&lt;P&gt;Update:&amp;nbsp; &lt;BR /&gt;&lt;BR /&gt;with these params a crash happens always when few frames are sent to encoder:&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input:&amp;nbsp;&amp;nbsp;&amp;nbsp; yuv420 interlaced 1440x1080&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;coding_type=1;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // interlaced &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264Params-&amp;gt;B_frame_rate=2;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // b frame rate 2&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;By tracing in debug mode, the crash happens here in UMC, it looks like a bug:&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;umc_h264_me.cpp&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;line 811&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;gt; ref_mvs is declared as NULL&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264MotionVector* ref_mvs = NULL;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; H264EncoderFrame&amp;lt;PIXTYPE&amp;gt; *prev_frame =&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; core_enc-&amp;gt;m_is_cur_pic_afrm?&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FindDirectRefIdxMBAFF(mb_col, uMB,block_col, pGetMBFieldDecodingFlag(curr_slice-&amp;gt;m_cur_mb.GlobalMacroblockInfo),pRefPicList0,pRefPicList1, mv_col, ref_idx_l0, curr_slice-&amp;gt;num_ref_idx_l0_active, core_enc-&amp;gt;m_MaxSliceSize)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;BR /&gt;&lt;STRONG&gt;&amp;gt; if is_cur_mb_field==1 ref_mvs is correctly initialized calling FindDirectRefIdx&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;gt; but if is_cur_mb_field==0 then it remains NULL&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (is_cur_mb_field!=0)?&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FindDirectRefIdxFLD(mb_col, block_col, pRefPicList0,pRefPicList1, pFields0, pFields1, mv_col, ref_idx_l0,curr_slice-&amp;gt;num_ref_idx_l0_active, core_enc-&amp;gt;m_MaxSliceSize)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FindDirectRefIdx(curr_slice, mb_col, block_col, pRefPicList0,pRefPicList1, &amp;amp;ref_mvs, ref_idx_l0, curr_slice-&amp;gt;num_ref_idx_l0_active);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!prev_frame) return false; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;STRONG&gt;&amp;gt; commented out line initializing ref_mvs (?&lt;/STRONG&gt;)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; H264MotionVector&amp;nbsp; *ref_mvs = &amp;amp;futr_frame-&amp;gt;m_mbinfo.MV[LIST_0][mb_col].MotionVectors[block_col];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ref_direct_l0[sb_pos] = ref_idx_l0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ref_direct_l0[sb_pos + 1] = ref_idx_l0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ref_direct_l0[sb_pos + 4] = ref_idx_l0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ref_direct_l0[sb_pos + 5] = ref_idx_l0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Ipp32s uFwdRatio = pGetMBFieldDecodingFlag(curr_slice-&amp;gt;m_cur_mb.GlobalMacroblockInfo)?&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; curr_slice-&amp;gt;DistScaleFactorMVAFF[uMB&amp;amp;1][uMB&amp;amp;1][(uMB&amp;amp;1)^(ref_idx_l0&amp;amp;1)][ref_idx_l0 &amp;gt;&amp;gt; 1] //FIXME&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; : curr_slice-&amp;gt;DistScaleFactorMV[ref_idx_l0][0];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (Ipp32s ypos = 0; ypos &amp;lt; 2; ypos++) // 4 4x4 blocks&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (Ipp32s xpos = 0; xpos &amp;lt; 2; xpos++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&lt;STRONG&gt;&amp;gt; here ref_mvs may be NULL and program crash&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; H264MotionVector mv_col = core_enc-&amp;gt;m_SeqParamSet.direct_8x8_inference_flag ? *ref_mvs :&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; *(ref_mvs + ypos*4 + xpos);&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I "solved" it changing the commented out line :&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H264MotionVector&amp;nbsp; *ref_mvs = &amp;amp;futr_frame-&amp;gt;m_mbinfo.MV[LIST_0][mb_col].MotionVectors[block_col];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ref_mvs==NULL)&amp;nbsp; ref_mvs = &amp;amp;futr_frame-&amp;gt;m_mbinfo.MV[LIST_0][mb_col].MotionVectors[block_col];&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I don't know if this solved anything or may be it brokes the encoder, could the programmerd check this?&lt;/P&gt;</description>
      <pubDate>Mon, 12 Aug 2013 21:35:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/H264-Encoder-w-ipp-samples-p-7-1-1-013-problem-with-b-frames/m-p/973732#M20762</guid>
      <dc:creator>sdi_3</dc:creator>
      <dc:date>2013-08-12T21:35:18Z</dc:date>
    </item>
  </channel>
</rss>

