On Tue, 9 Apr 2019 at 14:20, NDJORE BORIS <ndjorebo...@gmail.com> wrote:
> Hello guys, > > I try to find pixels value for a given macroblock in a frame. > What I did is the following : > > //for all macroblock in this frame > for(int mby=0; y<mb_height;y++) > { > for(int mbx=0; x<mb_width;x++) > { > int xy = mby*mb_stride+mbx; > //Now for this 16x16 macroblock > for(int y=0; y<16;y++) > { > for(int x=0; x<16;x++) > { > //All pixels YUV value for this macroblock > y = data[0][linesize[0]*y+x]; > u = data[1][linesize[1]*(y/2)+x/2] > v = data[2][linesize[2]*(y/2)+x/2] > } > } > //Let's in an other macroblock > } > } > 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. > > 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. > I need your help, please. > > Regards > > 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! Your inner assignments should probably be: y = data[0][linesize[0]*(mby*16)*y+(mbx*16 +x)] etc. Regards, Simon
_______________________________________________ Libav-user mailing list Libav-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/libav-user To unsubscribe, visit link above, or email libav-user-requ...@ffmpeg.org with subject "unsubscribe".