All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
To: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 3/4] drm: Add drm_format_{horz, vert}_chroma_subsampling() utility functions
Date: Wed, 11 Apr 2012 20:53:08 +0200	[thread overview]
Message-ID: <4F85D314.1010205@hispeed.ch> (raw)
In-Reply-To: <1333650918-16919-3-git-send-email-ville.syrjala@linux.intel.com>

Am 05.04.2012 20:35, schrieb ville.syrjala@linux.intel.com:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> These functions return the chroma subsampling factors for the specified
> pixel format.
Hmm not really related but looking at it this reminds me these formats
always look a bit underspecified wrt chroma subsample positions. Are
these fixed, undefined, or what (even mpeg1 and mpeg2 differ there, and
let's not even talk about the big mess that interlaced mpeg2 is)?

Roland



> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/drm_crtc.c |   60 ++++++++++++++++++++++++++++++++++++++++++++
>  include/drm/drm_crtc.h     |    2 +
>  2 files changed, 62 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 74979ae..95f15c8 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -3531,3 +3531,63 @@ int drm_format_plane_cpp(uint32_t format, int plane)
>  	}
>  }
>  EXPORT_SYMBOL(drm_format_plane_cpp);
> +
> +/**
> + * drm_format_horz_chroma_subsampling - get the horizontal chroma subsampling factor
> + * @format: pixel format (DRM_FORMAT_*)
> + *
> + * RETURNS:
> + * The horizontal chroma subsampling factor for the
> + * specified pixel format.
> + */
> +int drm_format_horz_chroma_subsampling(uint32_t format)
> +{
> +	switch (format) {
> +	case DRM_FORMAT_YUV411:
> +	case DRM_FORMAT_YVU411:
> +	case DRM_FORMAT_YUV410:
> +	case DRM_FORMAT_YVU410:
> +		return 4;
> +	case DRM_FORMAT_YUYV:
> +	case DRM_FORMAT_YVYU:
> +	case DRM_FORMAT_UYVY:
> +	case DRM_FORMAT_VYUY:
> +	case DRM_FORMAT_NV12:
> +	case DRM_FORMAT_NV21:
> +	case DRM_FORMAT_NV16:
> +	case DRM_FORMAT_NV61:
> +	case DRM_FORMAT_YUV422:
> +	case DRM_FORMAT_YVU422:
> +	case DRM_FORMAT_YUV420:
> +	case DRM_FORMAT_YVU420:
> +		return 2;
> +	default:
> +		return 1;
> +	}
> +}
> +EXPORT_SYMBOL(drm_format_horz_chroma_subsampling);
> +
> +/**
> + * drm_format_vert_chroma_subsampling - get the vertical chroma subsampling factor
> + * @format: pixel format (DRM_FORMAT_*)
> + *
> + * RETURNS:
> + * The vertical chroma subsampling factor for the
> + * specified pixel format.
> + */
> +int drm_format_vert_chroma_subsampling(uint32_t format)
> +{
> +	switch (format) {
> +	case DRM_FORMAT_YUV410:
> +	case DRM_FORMAT_YVU410:
> +		return 4;
> +	case DRM_FORMAT_YUV420:
> +	case DRM_FORMAT_YVU420:
> +	case DRM_FORMAT_NV12:
> +	case DRM_FORMAT_NV21:
> +		return 2;
> +	default:
> +		return 1;
> +	}
> +}
> +EXPORT_SYMBOL(drm_format_vert_chroma_subsampling);
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index ae7be55..824ab09 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -1025,5 +1025,7 @@ extern void drm_fb_get_bpp_depth(uint32_t format, unsigned int *depth,
>  				 int *bpp);
>  extern int drm_format_num_planes(uint32_t format);
>  extern int drm_format_plane_cpp(uint32_t format, int plane);
> +extern int drm_format_horz_chroma_subsampling(uint32_t format);
> +extern int drm_format_vert_chroma_subsampling(uint32_t format);
>  
>  #endif /* __DRM_CRTC_H__ */

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2012-04-11 19:04 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-05 18:35 [PATCH 1/4] drm: Move drm_format_num_planes() to drm_crtc.c ville.syrjala
2012-04-05 18:35 ` [PATCH 2/4] drm: Add drm_format_plane_cpp() utility function ville.syrjala
2012-04-05 18:35 ` [PATCH 3/4] drm: Add drm_format_{horz, vert}_chroma_subsampling() utility functions ville.syrjala
2012-04-11 18:53   ` Roland Scheidegger [this message]
2012-04-12 12:23     ` Ville Syrjälä
2012-04-13  2:42       ` Roland Scheidegger
2012-04-13 12:09         ` Ville Syrjälä
2012-04-05 18:35 ` [PATCH 4/4] drm: Add sanity checks to framebuffer creation ville.syrjala
2012-04-20 11:43 ` [PATCH 1/4] drm: Move drm_format_num_planes() to drm_crtc.c Dave Airlie
2012-04-20 12:23   ` Ville Syrjälä
2012-04-20 12:29     ` Dave Airlie
2012-04-20 12:48       ` Rob Clark
2012-04-20 13:49         ` Ville Syrjälä
2012-04-20 14:22           ` Rob Clark
2012-04-21  4:00             ` InKi Dae

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F85D314.1010205@hispeed.ch \
    --to=rscheidegger_lists@hispeed.ch \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.