[vlc-devel] [PATCH 1/2] copy: do one big memcpy when possible

Denis Charmet typx at dinauz.org
Fri Jul 29 16:33:07 CEST 2016


On 2016-07-28 14:45, Steve Lhomme wrote:
> ---
>  modules/video_chroma/copy.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/modules/video_chroma/copy.c b/modules/video_chroma/copy.c
> index cdeb96c..fa0a212 100644
> --- a/modules/video_chroma/copy.c
> +++ b/modules/video_chroma/copy.c
> @@ -270,6 +270,9 @@ static void SSE_CopyPlane(uint8_t *dst, size_t 
> dst_pitch,
>      const unsigned hstep = cache_size / w16;
>      assert(hstep > 0);
> 
> +    if (src_pitch == dst_pitch)
> +        memcpy(dst, src, width * height);

Don't you mean "src_pitch * height"?

> +    else
>      for (unsigned y = 0; y < height; y += hstep) {
>          const unsigned hblock =  __MIN(hstep, height - y);
> 
> @@ -407,6 +410,9 @@ static void CopyPlane(uint8_t *dst, size_t 
> dst_pitch,
>                        const uint8_t *src, size_t src_pitch,
>                        unsigned width, unsigned height)
>  {
> +    if (src_pitch == dst_pitch)
> +        memcpy(dst, src, width * height);
> +    else
>      for (unsigned y = 0; y < height; y++) {
>          memcpy(dst, src, width);
>          src += src_pitch;

Regards,
-- 
Denis Charmet - TypX
Le mauvais esprit est un art de vivre


More information about the vlc-devel mailing list