mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
Fix new video format API.
Fix new internal video format API, based on GstVideoFormat, to not clobber with system symbols. So replace the gst_video_format_* prefix with gst_vaapi_video_format_ prefix, even if the format type remains GstVideoFormat.
This commit is contained in:
parent
abd432d7b1
commit
7fa4973f8a
12 changed files with 70 additions and 74 deletions
|
@ -1,15 +1,15 @@
|
||||||
<SECTION>
|
<SECTION>
|
||||||
<FILE>videoformat</FILE>
|
<FILE>videoformat</FILE>
|
||||||
<TITLE>GstVideoFormat</TITLE>
|
<TITLE>GstVideoFormat</TITLE>
|
||||||
gst_video_format_from_caps
|
gst_vaapi_video_format_from_caps
|
||||||
gst_video_format_from_structure
|
gst_vaapi_video_format_from_structure
|
||||||
gst_video_format_from_va_format
|
gst_vaapi_video_format_from_va_format
|
||||||
gst_video_format_get_chroma_type
|
gst_vaapi_video_format_get_chroma_type
|
||||||
gst_video_format_get_score
|
gst_vaapi_video_format_get_score
|
||||||
gst_video_format_is_rgb
|
gst_vaapi_video_format_is_rgb
|
||||||
gst_video_format_is_yuv
|
gst_vaapi_video_format_is_yuv
|
||||||
gst_video_format_to_caps
|
gst_vaapi_video_format_to_caps
|
||||||
gst_video_format_to_va_format
|
gst_vaapi_video_format_to_va_format
|
||||||
</SECTION>
|
</SECTION>
|
||||||
|
|
||||||
<SECTION>
|
<SECTION>
|
||||||
|
|
|
@ -227,7 +227,7 @@ libgstvaapi_@GST_API_VERSION@_la_LIBADD = \
|
||||||
libgstvaapi_@GST_API_VERSION@_la_LDFLAGS = \
|
libgstvaapi_@GST_API_VERSION@_la_LDFLAGS = \
|
||||||
$(GST_ALL_LDFLAGS) \
|
$(GST_ALL_LDFLAGS) \
|
||||||
$(GST_VAAPI_LT_LDFLAGS) \
|
$(GST_VAAPI_LT_LDFLAGS) \
|
||||||
-export-symbols-regex "^gst_(.*vaapi|video_format).*" \
|
-export-symbols-regex "^gst_.*vaapi.*" \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
libgstvaapi_drm_@GST_API_VERSION@_la_SOURCES = \
|
libgstvaapi_drm_@GST_API_VERSION@_la_SOURCES = \
|
||||||
|
|
|
@ -199,7 +199,7 @@ append_formats(GArray *formats, const VAImageFormat *va_formats,
|
||||||
const VAImageFormat * const va_format = &va_formats[i];
|
const VAImageFormat * const va_format = &va_formats[i];
|
||||||
const GstVaapiFormatInfo **fipp;
|
const GstVaapiFormatInfo **fipp;
|
||||||
|
|
||||||
format = gst_video_format_from_va_format(va_format);
|
format = gst_vaapi_video_format_from_va_format(va_format);
|
||||||
if (format == GST_VIDEO_FORMAT_UNKNOWN) {
|
if (format == GST_VIDEO_FORMAT_UNKNOWN) {
|
||||||
GST_DEBUG("unsupported format %" GST_FOURCC_FORMAT,
|
GST_DEBUG("unsupported format %" GST_FOURCC_FORMAT,
|
||||||
GST_FOURCC_ARGS(va_format->fourcc));
|
GST_FOURCC_ARGS(va_format->fourcc));
|
||||||
|
@ -238,14 +238,14 @@ compare_yuv_formats(gconstpointer a, gconstpointer b)
|
||||||
const GstVideoFormat fmt1 = ((GstVaapiFormatInfo *)a)->format;
|
const GstVideoFormat fmt1 = ((GstVaapiFormatInfo *)a)->format;
|
||||||
const GstVideoFormat fmt2 = ((GstVaapiFormatInfo *)b)->format;
|
const GstVideoFormat fmt2 = ((GstVaapiFormatInfo *)b)->format;
|
||||||
|
|
||||||
const gboolean is_fmt1_yuv = gst_video_format_is_yuv(fmt1);
|
const gboolean is_fmt1_yuv = gst_vaapi_video_format_is_yuv(fmt1);
|
||||||
const gboolean is_fmt2_yuv = gst_video_format_is_yuv(fmt2);
|
const gboolean is_fmt2_yuv = gst_vaapi_video_format_is_yuv(fmt2);
|
||||||
|
|
||||||
if (is_fmt1_yuv != is_fmt2_yuv)
|
if (is_fmt1_yuv != is_fmt2_yuv)
|
||||||
return is_fmt1_yuv ? -1 : 1;
|
return is_fmt1_yuv ? -1 : 1;
|
||||||
|
|
||||||
return ((gint)gst_video_format_get_score(fmt1) -
|
return ((gint)gst_vaapi_video_format_get_score(fmt1) -
|
||||||
(gint)gst_video_format_get_score(fmt2));
|
(gint)gst_vaapi_video_format_get_score(fmt2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sort subpicture formats. Prefer RGB formats first */
|
/* Sort subpicture formats. Prefer RGB formats first */
|
||||||
|
@ -255,14 +255,14 @@ compare_rgb_formats(gconstpointer a, gconstpointer b)
|
||||||
const GstVideoFormat fmt1 = ((GstVaapiFormatInfo *)a)->format;
|
const GstVideoFormat fmt1 = ((GstVaapiFormatInfo *)a)->format;
|
||||||
const GstVideoFormat fmt2 = ((GstVaapiFormatInfo *)b)->format;
|
const GstVideoFormat fmt2 = ((GstVaapiFormatInfo *)b)->format;
|
||||||
|
|
||||||
const gboolean is_fmt1_rgb = gst_video_format_is_rgb(fmt1);
|
const gboolean is_fmt1_rgb = gst_vaapi_video_format_is_rgb(fmt1);
|
||||||
const gboolean is_fmt2_rgb = gst_video_format_is_rgb(fmt2);
|
const gboolean is_fmt2_rgb = gst_vaapi_video_format_is_rgb(fmt2);
|
||||||
|
|
||||||
if (is_fmt1_rgb != is_fmt2_rgb)
|
if (is_fmt1_rgb != is_fmt2_rgb)
|
||||||
return is_fmt1_rgb ? -1 : 1;
|
return is_fmt1_rgb ? -1 : 1;
|
||||||
|
|
||||||
return ((gint)gst_video_format_get_score(fmt1) -
|
return ((gint)gst_vaapi_video_format_get_score(fmt1) -
|
||||||
(gint)gst_video_format_get_score(fmt2));
|
(gint)gst_vaapi_video_format_get_score(fmt2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if configs array contains profile at entrypoint */
|
/* Check if configs array contains profile at entrypoint */
|
||||||
|
@ -377,7 +377,7 @@ get_format_caps(GArray *formats)
|
||||||
|
|
||||||
for (i = 0; i < formats->len; i++) {
|
for (i = 0; i < formats->len; i++) {
|
||||||
fip = &g_array_index(formats, GstVaapiFormatInfo, i);
|
fip = &g_array_index(formats, GstVaapiFormatInfo, i);
|
||||||
caps = gst_video_format_to_caps(fip->format);
|
caps = gst_vaapi_video_format_to_caps(fip->format);
|
||||||
if (caps)
|
if (caps)
|
||||||
gst_caps_append(out_caps, caps);
|
gst_caps_append(out_caps, caps);
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,7 +164,7 @@ _gst_vaapi_image_create(GstVaapiImage *image, GstVideoFormat format)
|
||||||
if (!gst_vaapi_display_has_image_format(display, format))
|
if (!gst_vaapi_display_has_image_format(display, format))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
va_format = gst_video_format_to_va_format(format);
|
va_format = gst_vaapi_video_format_to_va_format(format);
|
||||||
if (!va_format)
|
if (!va_format)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -218,7 +218,7 @@ gst_vaapi_image_create(GstVaapiImage *image, GstVideoFormat format,
|
||||||
switch (image->format) {
|
switch (image->format) {
|
||||||
case GST_VIDEO_FORMAT_YV12:
|
case GST_VIDEO_FORMAT_YV12:
|
||||||
case GST_VIDEO_FORMAT_I420:
|
case GST_VIDEO_FORMAT_I420:
|
||||||
va_format = gst_video_format_to_va_format(image->format);
|
va_format = gst_vaapi_video_format_to_va_format(image->format);
|
||||||
if (!va_format)
|
if (!va_format)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
image->image.format = *va_format;
|
image->image.format = *va_format;
|
||||||
|
@ -397,7 +397,7 @@ _gst_vaapi_image_set_image(GstVaapiImage *image, const VAImage *va_image)
|
||||||
VAImage alt_va_image;
|
VAImage alt_va_image;
|
||||||
const VAImageFormat *alt_va_format;
|
const VAImageFormat *alt_va_format;
|
||||||
|
|
||||||
format = gst_video_format_from_va_format(&va_image->format);
|
format = gst_vaapi_video_format_from_va_format(&va_image->format);
|
||||||
if (format == GST_VIDEO_FORMAT_UNKNOWN)
|
if (format == GST_VIDEO_FORMAT_UNKNOWN)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -425,7 +425,7 @@ _gst_vaapi_image_set_image(GstVaapiImage *image, const VAImage *va_image)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (format &&
|
if (format &&
|
||||||
(alt_va_format = gst_video_format_to_va_format(format))) {
|
(alt_va_format = gst_vaapi_video_format_to_va_format(format))) {
|
||||||
alt_va_image = *va_image;
|
alt_va_image = *va_image;
|
||||||
alt_va_image.format = *alt_va_format;
|
alt_va_image.format = *alt_va_format;
|
||||||
SWAP_UINT(alt_va_image.offsets[1], alt_va_image.offsets[2]);
|
SWAP_UINT(alt_va_image.offsets[1], alt_va_image.offsets[2]);
|
||||||
|
|
|
@ -145,11 +145,11 @@ gst_vaapi_surface_create_with_format(GstVaapiSurface *surface,
|
||||||
const VAImageFormat *va_format;
|
const VAImageFormat *va_format;
|
||||||
VASurfaceAttrib attrib;
|
VASurfaceAttrib attrib;
|
||||||
|
|
||||||
va_format = gst_video_format_to_va_format(format);
|
va_format = gst_vaapi_video_format_to_va_format(format);
|
||||||
if (!va_format)
|
if (!va_format)
|
||||||
goto error_unsupported_format;
|
goto error_unsupported_format;
|
||||||
|
|
||||||
chroma_type = gst_video_format_get_chroma_type(format);
|
chroma_type = gst_vaapi_video_format_get_chroma_type(format);
|
||||||
if (!chroma_type)
|
if (!chroma_type)
|
||||||
goto error_unsupported_format;
|
goto error_unsupported_format;
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ surface_pool_init(GstVaapiSurfacePool *pool, const GstVideoInfo *vip)
|
||||||
if (pool->format == GST_VIDEO_FORMAT_ENCODED)
|
if (pool->format == GST_VIDEO_FORMAT_ENCODED)
|
||||||
pool->chroma_type = GST_VAAPI_CHROMA_TYPE_YUV420;
|
pool->chroma_type = GST_VAAPI_CHROMA_TYPE_YUV420;
|
||||||
else
|
else
|
||||||
pool->chroma_type = gst_video_format_get_chroma_type(pool->format);
|
pool->chroma_type = gst_vaapi_video_format_get_chroma_type(pool->format);
|
||||||
if (!pool->chroma_type)
|
if (!pool->chroma_type)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* video-format.c - Video format abstraction
|
* video-format.h - Video format helpers for VA-API
|
||||||
*
|
*
|
||||||
* Copyright (C) 2010-2011 Splitted-Desktop Systems
|
* Copyright (C) 2010-2011 Splitted-Desktop Systems
|
||||||
* Copyright (C) 2011-2013 Intel Corporation
|
* Copyright (C) 2011-2013 Intel Corporation
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SECTION:videoformat
|
* SECTION:videoformat
|
||||||
* @short_description: Video format abstraction
|
* @short_description: Video format helpers for VA-API
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "sysdeps.h"
|
#include "sysdeps.h"
|
||||||
|
@ -64,7 +64,7 @@ struct _GstVideoFormatMap {
|
||||||
{ VA_FOURCC FOURCC, VA_##ENDIAN##_FIRST, BPP, DEPTH, R,G,B,A }, }
|
{ VA_FOURCC FOURCC, VA_##ENDIAN##_FIRST, BPP, DEPTH, R,G,B,A }, }
|
||||||
|
|
||||||
/* Image formats, listed in HW order preference */
|
/* Image formats, listed in HW order preference */
|
||||||
static const GstVideoFormatMap gst_video_formats[] = {
|
static const GstVideoFormatMap gst_vaapi_video_formats[] = {
|
||||||
DEF_YUV(NV12, ('N','V','1','2'), LSB, 12, 420),
|
DEF_YUV(NV12, ('N','V','1','2'), LSB, 12, 420),
|
||||||
DEF_YUV(YV12, ('Y','V','1','2'), LSB, 12, 420),
|
DEF_YUV(YV12, ('Y','V','1','2'), LSB, 12, 420),
|
||||||
DEF_YUV(I420, ('I','4','2','0'), LSB, 12, 420),
|
DEF_YUV(I420, ('I','4','2','0'), LSB, 12, 420),
|
||||||
|
@ -132,7 +132,7 @@ get_map(GstVideoFormat format)
|
||||||
{
|
{
|
||||||
const GstVideoFormatMap *m;
|
const GstVideoFormatMap *m;
|
||||||
|
|
||||||
for (m = gst_video_formats; m->format; m++) {
|
for (m = gst_vaapi_video_formats; m->format; m++) {
|
||||||
if (m->format == format)
|
if (m->format == format)
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
@ -140,43 +140,39 @@ get_map(GstVideoFormat format)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_video_format_is_rgb:
|
* gst_vaapi_video_format_is_rgb:
|
||||||
* @format: a #GstVideoFormat
|
* @format: a #GstVideoFormat
|
||||||
*
|
*
|
||||||
* Checks whether the format is an RGB format.
|
* Checks whether the format is an RGB format.
|
||||||
*
|
*
|
||||||
* Return value: %TRUE if @format is RGB format
|
* Return value: %TRUE if @format is RGB format
|
||||||
*/
|
*/
|
||||||
#if GST_CHECK_VERSION(1,0,0)
|
|
||||||
gboolean
|
gboolean
|
||||||
gst_video_format_is_rgb(GstVideoFormat format)
|
gst_vaapi_video_format_is_rgb(GstVideoFormat format)
|
||||||
{
|
{
|
||||||
const GstVideoFormatMap * const m = get_map(format);
|
const GstVideoFormatMap * const m = get_map(format);
|
||||||
|
|
||||||
return m && va_format_is_rgb(&m->va_format);
|
return m && va_format_is_rgb(&m->va_format);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_video_format_is_yuv:
|
* gst_vaapi_video_format_is_yuv:
|
||||||
* @format: a #GstVideoFormat
|
* @format: a #GstVideoFormat
|
||||||
*
|
*
|
||||||
* Checks whether the format is an YUV format.
|
* Checks whether the format is an YUV format.
|
||||||
*
|
*
|
||||||
* Return value: %TRUE if @format is YUV format
|
* Return value: %TRUE if @format is YUV format
|
||||||
*/
|
*/
|
||||||
#if GST_CHECK_VERSION(1,0,0)
|
|
||||||
gboolean
|
gboolean
|
||||||
gst_video_format_is_yuv(GstVideoFormat format)
|
gst_vaapi_video_format_is_yuv(GstVideoFormat format)
|
||||||
{
|
{
|
||||||
const GstVideoFormatMap * const m = get_map(format);
|
const GstVideoFormatMap * const m = get_map(format);
|
||||||
|
|
||||||
return m && va_format_is_yuv(&m->va_format);
|
return m && va_format_is_yuv(&m->va_format);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_video_format_from_caps:
|
* gst_vaapi_video_format_from_caps:
|
||||||
* @caps: a #GstCaps
|
* @caps: a #GstCaps
|
||||||
*
|
*
|
||||||
* Converts @caps into the corresponding #GstVideoFormat. If the
|
* Converts @caps into the corresponding #GstVideoFormat. If the
|
||||||
|
@ -186,7 +182,7 @@ gst_video_format_is_yuv(GstVideoFormat format)
|
||||||
* Return value: the #GstVideoFormat describing the @caps
|
* Return value: the #GstVideoFormat describing the @caps
|
||||||
*/
|
*/
|
||||||
GstVideoFormat
|
GstVideoFormat
|
||||||
gst_video_format_from_caps(GstCaps *caps)
|
gst_vaapi_video_format_from_caps(GstCaps *caps)
|
||||||
{
|
{
|
||||||
GstStructure *structure;
|
GstStructure *structure;
|
||||||
|
|
||||||
|
@ -196,11 +192,11 @@ gst_video_format_from_caps(GstCaps *caps)
|
||||||
structure = gst_caps_get_structure(caps, 0);
|
structure = gst_caps_get_structure(caps, 0);
|
||||||
if (!structure)
|
if (!structure)
|
||||||
return 0;
|
return 0;
|
||||||
return gst_video_format_from_structure(structure);
|
return gst_vaapi_video_format_from_structure(structure);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_video_format_from_structure:
|
* gst_vaapi_video_format_from_structure:
|
||||||
* @structure: a #GstStructure
|
* @structure: a #GstStructure
|
||||||
*
|
*
|
||||||
* Converts @structure into the corresponding #GstVideoFormat. If
|
* Converts @structure into the corresponding #GstVideoFormat. If
|
||||||
|
@ -210,7 +206,7 @@ gst_video_format_from_caps(GstCaps *caps)
|
||||||
* Return value: the #GstVideoFormat describing the @structure
|
* Return value: the #GstVideoFormat describing the @structure
|
||||||
*/
|
*/
|
||||||
GstVideoFormat
|
GstVideoFormat
|
||||||
gst_video_format_from_structure(GstStructure *structure)
|
gst_vaapi_video_format_from_structure(GstStructure *structure)
|
||||||
{
|
{
|
||||||
#if GST_CHECK_VERSION(1,0,0)
|
#if GST_CHECK_VERSION(1,0,0)
|
||||||
const gchar * format = gst_structure_get_string(structure, "format");
|
const gchar * format = gst_structure_get_string(structure, "format");
|
||||||
|
@ -248,7 +244,7 @@ gst_video_format_from_structure(GstStructure *structure)
|
||||||
va_format->blue_mask = GUINT32_SWAP_LE_BE(bmask);
|
va_format->blue_mask = GUINT32_SWAP_LE_BE(bmask);
|
||||||
va_format->alpha_mask = GUINT32_SWAP_LE_BE(amask);
|
va_format->alpha_mask = GUINT32_SWAP_LE_BE(amask);
|
||||||
|
|
||||||
for (m = gst_video_formats; m->format; m++) {
|
for (m = gst_vaapi_video_formats; m->format; m++) {
|
||||||
if (va_format_is_rgb(&m->va_format) &&
|
if (va_format_is_rgb(&m->va_format) &&
|
||||||
(va_format_is_same_rgb(&m->va_format, &va_formats[0]) ||
|
(va_format_is_same_rgb(&m->va_format, &va_formats[0]) ||
|
||||||
va_format_is_same_rgb(&m->va_format, &va_formats[1])))
|
va_format_is_same_rgb(&m->va_format, &va_formats[1])))
|
||||||
|
@ -259,7 +255,7 @@ gst_video_format_from_structure(GstStructure *structure)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_video_format_to_caps:
|
* gst_vaapi_video_format_to_caps:
|
||||||
* @format: a #GstVideoFormat
|
* @format: a #GstVideoFormat
|
||||||
*
|
*
|
||||||
* Converts a #GstVideoFormat into the corresponding #GstCaps. If
|
* Converts a #GstVideoFormat into the corresponding #GstCaps. If
|
||||||
|
@ -268,7 +264,7 @@ gst_video_format_from_structure(GstStructure *structure)
|
||||||
* Return value: the newly allocated #GstCaps, or %NULL if none was found
|
* Return value: the newly allocated #GstCaps, or %NULL if none was found
|
||||||
*/
|
*/
|
||||||
GstCaps *
|
GstCaps *
|
||||||
gst_video_format_to_caps(GstVideoFormat format)
|
gst_vaapi_video_format_to_caps(GstVideoFormat format)
|
||||||
{
|
{
|
||||||
const GstVideoFormatMap * const m = get_map(format);
|
const GstVideoFormatMap * const m = get_map(format);
|
||||||
|
|
||||||
|
@ -276,7 +272,7 @@ gst_video_format_to_caps(GstVideoFormat format)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_video_format_from_va_format:
|
* gst_vaapi_video_format_from_va_format:
|
||||||
* @va_format: a #VAImageFormat
|
* @va_format: a #VAImageFormat
|
||||||
*
|
*
|
||||||
* Converts a VA image format into the corresponding #GstVideoFormat.
|
* Converts a VA image format into the corresponding #GstVideoFormat.
|
||||||
|
@ -286,11 +282,11 @@ gst_video_format_to_caps(GstVideoFormat format)
|
||||||
* Return value: the #GstVideoFormat describing the @va_format
|
* Return value: the #GstVideoFormat describing the @va_format
|
||||||
*/
|
*/
|
||||||
GstVideoFormat
|
GstVideoFormat
|
||||||
gst_video_format_from_va_format(const VAImageFormat *va_format)
|
gst_vaapi_video_format_from_va_format(const VAImageFormat *va_format)
|
||||||
{
|
{
|
||||||
const GstVideoFormatMap *m;
|
const GstVideoFormatMap *m;
|
||||||
|
|
||||||
for (m = gst_video_formats; m->format; m++) {
|
for (m = gst_vaapi_video_formats; m->format; m++) {
|
||||||
if (va_format_is_same(&m->va_format, va_format))
|
if (va_format_is_same(&m->va_format, va_format))
|
||||||
return m->format;
|
return m->format;
|
||||||
}
|
}
|
||||||
|
@ -298,7 +294,7 @@ gst_video_format_from_va_format(const VAImageFormat *va_format)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_video_format_to_va_format:
|
* gst_vaapi_video_format_to_va_format:
|
||||||
* @format: a #GstVideoFormat
|
* @format: a #GstVideoFormat
|
||||||
*
|
*
|
||||||
* Converts a #GstVideoFormat into the corresponding VA image
|
* Converts a #GstVideoFormat into the corresponding VA image
|
||||||
|
@ -308,7 +304,7 @@ gst_video_format_from_va_format(const VAImageFormat *va_format)
|
||||||
* Return value: the VA image format, or %NULL if none was found
|
* Return value: the VA image format, or %NULL if none was found
|
||||||
*/
|
*/
|
||||||
const VAImageFormat *
|
const VAImageFormat *
|
||||||
gst_video_format_to_va_format(GstVideoFormat format)
|
gst_vaapi_video_format_to_va_format(GstVideoFormat format)
|
||||||
{
|
{
|
||||||
const GstVideoFormatMap * const m = get_map(format);
|
const GstVideoFormatMap * const m = get_map(format);
|
||||||
|
|
||||||
|
@ -316,7 +312,7 @@ gst_video_format_to_va_format(GstVideoFormat format)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_video_format_get_chroma_type:
|
* gst_vaapi_video_format_get_chroma_type:
|
||||||
* @format: a #GstVideoFormat
|
* @format: a #GstVideoFormat
|
||||||
*
|
*
|
||||||
* Converts a #GstVideoFormat into the corresponding #GstVaapiChromaType
|
* Converts a #GstVideoFormat into the corresponding #GstVaapiChromaType
|
||||||
|
@ -326,7 +322,7 @@ gst_video_format_to_va_format(GstVideoFormat format)
|
||||||
* was found.
|
* was found.
|
||||||
*/
|
*/
|
||||||
guint
|
guint
|
||||||
gst_video_format_get_chroma_type(GstVideoFormat format)
|
gst_vaapi_video_format_get_chroma_type(GstVideoFormat format)
|
||||||
{
|
{
|
||||||
const GstVideoFormatMap * const m = get_map(format);
|
const GstVideoFormatMap * const m = get_map(format);
|
||||||
|
|
||||||
|
@ -334,7 +330,7 @@ gst_video_format_get_chroma_type(GstVideoFormat format)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_video_format_get_score:
|
* gst_vaapi_video_format_get_score:
|
||||||
* @format: a #GstVideoFormat
|
* @format: a #GstVideoFormat
|
||||||
*
|
*
|
||||||
* Determines how "native" is this @format. The lower is the returned
|
* Determines how "native" is this @format. The lower is the returned
|
||||||
|
@ -343,9 +339,9 @@ gst_video_format_get_chroma_type(GstVideoFormat format)
|
||||||
* Return value: the @format score, or %G_MAXUINT if none was found
|
* Return value: the @format score, or %G_MAXUINT if none was found
|
||||||
*/
|
*/
|
||||||
guint
|
guint
|
||||||
gst_video_format_get_score(GstVideoFormat format)
|
gst_vaapi_video_format_get_score(GstVideoFormat format)
|
||||||
{
|
{
|
||||||
const GstVideoFormatMap * const m = get_map(format);
|
const GstVideoFormatMap * const m = get_map(format);
|
||||||
|
|
||||||
return m ? (m - &gst_video_formats[0]) : G_MAXUINT;
|
return m ? (m - &gst_vaapi_video_formats[0]) : G_MAXUINT;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* video-format.h - Video format abstraction
|
* video-format.h - Video format helpers for VA-API
|
||||||
*
|
*
|
||||||
* Copyright (C) 2010-2011 Splitted-Desktop Systems
|
* Copyright (C) 2010-2011 Splitted-Desktop Systems
|
||||||
* Copyright (C) 2011-2013 Intel Corporation
|
* Copyright (C) 2011-2013 Intel Corporation
|
||||||
|
@ -29,31 +29,31 @@
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
gst_video_format_is_rgb(GstVideoFormat format);
|
gst_vaapi_video_format_is_rgb(GstVideoFormat format);
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
gst_video_format_is_yuv(GstVideoFormat format);
|
gst_vaapi_video_format_is_yuv(GstVideoFormat format);
|
||||||
|
|
||||||
GstVideoFormat
|
GstVideoFormat
|
||||||
gst_video_format_from_structure(GstStructure *structure);
|
gst_vaapi_video_format_from_structure(GstStructure *structure);
|
||||||
|
|
||||||
GstVideoFormat
|
GstVideoFormat
|
||||||
gst_video_format_from_caps(GstCaps *caps);
|
gst_vaapi_video_format_from_caps(GstCaps *caps);
|
||||||
|
|
||||||
GstCaps *
|
GstCaps *
|
||||||
gst_video_format_to_caps(GstVideoFormat format);
|
gst_vaapi_video_format_to_caps(GstVideoFormat format);
|
||||||
|
|
||||||
GstVideoFormat
|
GstVideoFormat
|
||||||
gst_video_format_from_va_format(const VAImageFormat *va_format);
|
gst_vaapi_video_format_from_va_format(const VAImageFormat *va_format);
|
||||||
|
|
||||||
const VAImageFormat *
|
const VAImageFormat *
|
||||||
gst_video_format_to_va_format(GstVideoFormat format);
|
gst_vaapi_video_format_to_va_format(GstVideoFormat format);
|
||||||
|
|
||||||
guint
|
guint
|
||||||
gst_video_format_get_chroma_type(GstVideoFormat format);
|
gst_vaapi_video_format_get_chroma_type(GstVideoFormat format);
|
||||||
|
|
||||||
guint
|
guint
|
||||||
gst_video_format_get_score(GstVideoFormat format);
|
gst_vaapi_video_format_get_score(GstVideoFormat format);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
|
|
@ -334,7 +334,7 @@ gst_vaapidownload_update_src_caps(GstVaapiDownload *download, GstBuffer *buffer)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
out_caps = gst_video_format_to_caps(download->image_format);
|
out_caps = gst_vaapi_video_format_to_caps(download->image_format);
|
||||||
if (!out_caps) {
|
if (!out_caps) {
|
||||||
GST_WARNING("failed to create caps from format %s",
|
GST_WARNING("failed to create caps from format %s",
|
||||||
gst_video_format_to_string(download->image_format));
|
gst_video_format_to_string(download->image_format));
|
||||||
|
|
|
@ -138,7 +138,7 @@ ensure_allowed_caps(GstVaapiUploader *uploader)
|
||||||
GstVaapiImage *image;
|
GstVaapiImage *image;
|
||||||
GstVideoFormat format;
|
GstVideoFormat format;
|
||||||
|
|
||||||
format = gst_video_format_from_structure(structure);
|
format = gst_vaapi_video_format_from_structure(structure);
|
||||||
if (format == GST_VIDEO_FORMAT_UNKNOWN)
|
if (format == GST_VIDEO_FORMAT_UNKNOWN)
|
||||||
continue;
|
continue;
|
||||||
image = gst_vaapi_image_new(priv->display, format, WIDTH, HEIGHT);
|
image = gst_vaapi_image_new(priv->display, format, WIDTH, HEIGHT);
|
||||||
|
@ -224,7 +224,7 @@ ensure_surface_pool(GstVaapiUploader *uploader, GstCaps *caps,
|
||||||
/* XXX: this also means that visual quality is not preserved */
|
/* XXX: this also means that visual quality is not preserved */
|
||||||
if (format != GST_VIDEO_FORMAT_ENCODED) {
|
if (format != GST_VIDEO_FORMAT_ENCODED) {
|
||||||
const GstVaapiChromaType chroma_type =
|
const GstVaapiChromaType chroma_type =
|
||||||
gst_video_format_get_chroma_type(format);
|
gst_vaapi_video_format_get_chroma_type(format);
|
||||||
if (chroma_type != GST_VAAPI_CHROMA_TYPE_YUV420) {
|
if (chroma_type != GST_VAAPI_CHROMA_TYPE_YUV420) {
|
||||||
const GstVideoFormat image_format =
|
const GstVideoFormat image_format =
|
||||||
GST_VIDEO_INFO_FORMAT(&priv->image_info);
|
GST_VIDEO_INFO_FORMAT(&priv->image_info);
|
||||||
|
|
|
@ -302,7 +302,7 @@ image_draw_rectangle(
|
||||||
stride[i] = gst_vaapi_image_get_pitch(image, i);
|
stride[i] = gst_vaapi_image_get_pitch(image, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gst_video_format_is_yuv(image_format))
|
if (gst_vaapi_video_format_is_yuv(image_format))
|
||||||
color = argb2yuv(color);
|
color = argb2yuv(color);
|
||||||
|
|
||||||
if (x < 0)
|
if (x < 0)
|
||||||
|
|
|
@ -133,15 +133,15 @@ print_format_caps(GstCaps *caps, const gchar *name)
|
||||||
|
|
||||||
g_print(" %s:", gst_structure_get_name(structure));
|
g_print(" %s:", gst_structure_get_name(structure));
|
||||||
|
|
||||||
format = gst_video_format_from_structure(structure);
|
format = gst_vaapi_video_format_from_structure(structure);
|
||||||
if (format == GST_VIDEO_FORMAT_UNKNOWN)
|
if (format == GST_VIDEO_FORMAT_UNKNOWN)
|
||||||
g_error("could not determine format");
|
g_error("could not determine format");
|
||||||
|
|
||||||
va_format = gst_video_format_to_va_format(format);
|
va_format = gst_vaapi_video_format_to_va_format(format);
|
||||||
if (!va_format)
|
if (!va_format)
|
||||||
g_error("could not determine VA format");
|
g_error("could not determine VA format");
|
||||||
|
|
||||||
if (gst_video_format_is_yuv(format))
|
if (gst_vaapi_video_format_is_yuv(format))
|
||||||
print_format_caps_yuv(va_format);
|
print_format_caps_yuv(va_format);
|
||||||
else
|
else
|
||||||
print_format_caps_rgb(va_format);
|
print_format_caps_rgb(va_format);
|
||||||
|
|
Loading…
Reference in a new issue