<div dir="ltr"><div dir="ltr">On Tue, 9 Apr 2019 at 14:20, NDJORE BORIS <<a href="mailto:ndjoreboris@gmail.com">ndjoreboris@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello guys,<div><br></div><div>I try to find pixels value for a given macroblock in a frame.</div><div>What I did is the following :</div><div><br></div><div>//for all macroblock in this frame</div><div>for(int mby=0; y<mb_height;y++)</div><div>{</div><div>         for(int mbx=0; x<mb_width;x++)</div><div>         {</div><div>             int xy =  mby*mb_stride+mbx;</div><div>             //Now for this 16x16 macroblock</div><div>            for(int y=0; y<16;y++)</div><div>            {</div><div>               for(int x=0; x<16;x++)</div><div>               {</div><div>                 //All pixels YUV value for this macroblock</div><div>                 y = data[0][linesize[0]*y+x];</div><div>                 u = data[1][linesize[1]*(y/2)+x/2]</div><div>                 v = data[2][linesize[2]*(y/2)+x/2]</div><div>             }</div><div>}</div><div>//Let's in an other macroblock</div><div>}</div><div>}</div><div>The problem is that for all macroblocks, I have the same Y, u and v value. That's is true because I only use the same width and height for every macroblock.</div><div><br></div><div>My question is to know how can I put difference in the above code to find pixels yuv value for each macroblock in this frame.</div><div>I need your help, please.</div><div><br></div><div>Regards</div></div><br></blockquote><div>Without having understood your code fully, you have two loops around the outside, one for mby and one for mbx, yet they use y<mb_height and y++, x<mb_width and x++.  You then inside these loops have a loop for x and y also comparing x and y and incrementing x and y.  That can't be right!</div><div><br></div><div>Your inner assignments should probably be:</div><div>y = data[0][linesize[0]*(mby*16)*y+(mbx*16 +x)]</div><div>etc.</div><div><br></div><div>Regards,</div><div>Simon</div></div></div>