cscodec.h264.decoder.DSPContext.draw_edges C# (CSharp) Method

draw_edges() public method

public draw_edges ( byte buf_base, int buf_offset, int wrap, int width, int height, int w ) : void
buf_base byte
buf_offset int
wrap int
width int
height int
w int
return void
        public void draw_edges(byte[] buf_base, int buf_offset, int wrap, int width, int height, int w)
        {
            //uint8_t *ptr, *last_line;
            byte[] ptr_base;
            byte[] last_line_base;
            int ptr_offset;
            int last_line_offset;

            int i;

            last_line_base = buf_base;
            last_line_offset = buf_offset + (height - 1) * wrap;
            for (i = 0; i < w; i++)
            {
                /* top and bottom */
                Array.Copy(buf_base, buf_offset, buf_base, buf_offset - (i + 1) * wrap, width);
                //memcpy(buf - (i + 1) * wrap, buf, width);
                Array.Copy(last_line_base, last_line_offset, last_line_base, last_line_offset + (i + 1) * wrap, width);
                //memcpy(last_line + (i + 1) * wrap, last_line, width);
            }
            /* left and right */
            ptr_base = buf_base;
            ptr_offset = buf_offset;
            for (i = 0; i < height; i++)
            {
                Arrays.Fill(ptr_base, ptr_offset - w, ptr_offset - w + w, ptr_base[ptr_offset]);
                //memset(ptr - w, ptr[0], w);
                Arrays.Fill(ptr_base, ptr_offset + width, ptr_offset + width + w, ptr_base[ptr_offset + width - 1]);
                //memset(ptr + width, ptr[width-1], w);
                ptr_offset += wrap;
            }
            /* corners */
            for (i = 0; i < w; i++)
            {
                Arrays.Fill(buf_base, buf_offset - (i + 1) * wrap - w, buf_offset - (i + 1) * wrap - w + w, buf_base[buf_offset]);
                //memset(buf - (i + 1) * wrap - w, buf[0], w); /* top left */
                Arrays.Fill(buf_base, buf_offset - (i + 1) * wrap + width, buf_offset - (i + 1) * wrap + width + w, buf_base[buf_offset + width - 1]);
                //memset(buf - (i + 1) * wrap + width, buf[width-1], w); /* top right */
                Arrays.Fill(last_line_base, last_line_offset + (i + 1) * wrap - w, last_line_offset + (i + 1) * wrap - w + w, last_line_base[last_line_offset]);
                //memset(last_line + (i + 1) * wrap - w, last_line[0], w); /* top left */
                Arrays.Fill(last_line_base, last_line_offset + (i + 1) * wrap + width, last_line_offset + (i + 1) * wrap + width + w, last_line_base[last_line_offset + width - 1]);
                //memset(last_line + (i + 1) * wrap + width, last_line[width-1], w); /* top right */
            }
        }