<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
> +    for (int i = 0; i < p_pic->i_planes; i++)<br>
> +    {<br>
> +        p_row_pointers[i] = malloc(sizeof(JSAMPROW) * p_jpeg.comp_info[i].v_samp_factor * DCTSIZE);<br>
<br>
</div>Really, no way to operate on the picture buffers directly?<br>
<div><div class="h5"><br>
> +    }<br>
> +<br>
> +    while (p_jpeg.next_scanline < p_jpeg.image_height)<br>
> +    {<br>
> +        for (int i = 0; i < p_pic->i_planes; i++)<br>
> +        {<br>
> +            for (int j = 0; j < p_jpeg.comp_info[i].v_samp_factor * DCTSIZE; j++)<br>
> +            {<br>
> +                p_row_pointers[i][j] = p_pic->p[i].p_pixels + p_pic->p[i].i_pitch * p_jpeg.next_scanline * p_jpeg.comp_info[i].v_samp_factor / p_jpeg.max_v_samp_factor + j;<br>
> +            }<br>
> +        }<br>
> +        jpeg_write_raw_data(&p_jpeg, p_row_pointers, p_jpeg.max_v_samp_factor * DCTSIZE);<br>
> +    }<br></div></div></blockquote><div><br></div><div>Maybe you could advice me how to do that without additional allocations.</div><div>JSAMPARRAY is a 3-dimensional array, top index is color component. Each element is a JSAMPARRAY - 2-dimensional array of row pointers.</div>
<div>We are having p_pic->p[i].p_pixels, which is a plane array of pixels for each color component.</div></div><br clear="all"><div><br></div>-- <br>Maxim Bublis
</div></div>