On Fri, Apr 26, 2013 at 3:22 PM, Janne Grunau <[email protected]>wrote:
> ---
> libavutil/pixdesc.c | 28 ++++++++++++++++++++++++++++
> libavutil/pixdesc.h | 7 +++++++
> libavutil/version.h | 2 +-
> 3 files changed, 36 insertions(+), 1 deletion(-)
>
> diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
> index 67f9c43..8a55b1f 100644
> --- a/libavutil/pixdesc.c
> +++ b/libavutil/pixdesc.c
> @@ -1512,3 +1512,31 @@ int av_pix_fmt_count_planes(enum AVPixelFormat
> pix_fmt)
> ret += planes[i];
> return ret;
> }
> +
> +
> +int av_pix_fmt_equal_except_endianness(enum AVPixelFormat fmt_a,
> + enum AVPixelFormat fmt_b)
> +{
> + int i;
> + const AVPixFmtDescriptor *desc_a = av_pix_fmt_desc_get(fmt_a);
> + const AVPixFmtDescriptor *desc_b = av_pix_fmt_desc_get(fmt_b);
> +
> + if (!desc_a || !desc_b)
> + return 0;
> +
> + if (desc_a->flags & ~PIX_FMT_BE != desc_b->flags & ~PIX_FMT_BE)
> + return 0;
> + if (desc_a->nb_components != desc_b->nb_components)
> + return 0;
> + if (desc_a->log2_chroma_w != desc_b->log2_chroma_w)
> + return 0;
> + if (desc_a->log2_chroma_h != desc_b->log2_chroma_h)
> + return 0;
> +
> + for (i = 0; i < desc_a->nb_components; i++) {
> + if (memcmp(&desc_a->comp[i], &desc_b->comp[i],
> sizeof(desc_a->comp[i])))
> + return 0;
> + }
> +
> + return 1;
> +}
> diff --git a/libavutil/pixdesc.h b/libavutil/pixdesc.h
> index ef93bfe..1871fe1 100644
> --- a/libavutil/pixdesc.h
> +++ b/libavutil/pixdesc.h
> @@ -226,4 +226,11 @@ int av_pix_fmt_get_chroma_sub_sample(enum
> AVPixelFormat pix_fmt,
> int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt);
>
>
> +/**
> + * @return 1 if both pixel formats are equal ignoring endianness, 0
> otherwise.
> + */
> +int av_pix_fmt_equal_except_endianness(enum AVPixelFormat fmt_a,
> + enum AVPixelFormat fmt_b);
> +
> +
> #endif /* AVUTIL_PIXDESC_H */
> diff --git a/libavutil/version.h b/libavutil/version.h
> index 6e8daa2..948a28f 100644
> --- a/libavutil/version.h
> +++ b/libavutil/version.h
> @@ -38,7 +38,7 @@
>
> #define LIBAVUTIL_VERSION_MAJOR 52
> #define LIBAVUTIL_VERSION_MINOR 10
> -#define LIBAVUTIL_VERSION_MICRO 0
> +#define LIBAVUTIL_VERSION_MICRO 1
>
> #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
> LIBAVUTIL_VERSION_MINOR, \
> --
> 1.8.2.1
>
>
Not sure if it matters in the end, but this function is not fool proof.
yuv420 == yuvj420
nv12 == nv21
argb == rgba == abgr == bgra
and probably more.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel