mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
Add more video formats.
Add new video format mappings to VA image formats: - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ; - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
This commit is contained in:
parent
d469b7274c
commit
97c0316fe4
2 changed files with 24 additions and 1 deletions
|
@ -105,15 +105,27 @@ vaapi_image_is_linear(const VAImage *va_image)
|
|||
case VA_FOURCC('I','4','2','0'):
|
||||
data_size = width * height + 2 * width2 * height2;
|
||||
break;
|
||||
case VA_FOURCC('Y','U','Y','2'):
|
||||
case VA_FOURCC('U','Y','V','Y'):
|
||||
data_size = 2 * width * height;
|
||||
break;
|
||||
case VA_FOURCC('Y','8','0','0'):
|
||||
data_size = width * height;
|
||||
break;
|
||||
case VA_FOURCC('A','Y','U','V'):
|
||||
case VA_FOURCC('A','R','G','B'):
|
||||
case VA_FOURCC('R','G','B','A'):
|
||||
case VA_FOURCC('A','B','G','R'):
|
||||
case VA_FOURCC('B','G','R','A'):
|
||||
case VA_FOURCC('X','R','G','B'):
|
||||
case VA_FOURCC('R','G','B','X'):
|
||||
case VA_FOURCC('X','B','G','R'):
|
||||
case VA_FOURCC('B','G','R','X'):
|
||||
data_size = 4 * width * height;
|
||||
break;
|
||||
default:
|
||||
g_error("FIXME: incomplete formats");
|
||||
g_error("FIXME: incomplete formats %" GST_FOURCC_FORMAT,
|
||||
GST_FOURCC_ARGS(va_image->format.fourcc));
|
||||
break;
|
||||
}
|
||||
return va_image->data_size == data_size;
|
||||
|
|
|
@ -63,18 +63,29 @@ static const GstVideoFormatMap gst_video_formats[] = {
|
|||
DEF_YUV(NV12, ('N','V','1','2'), LSB, 12),
|
||||
DEF_YUV(YV12, ('Y','V','1','2'), LSB, 12),
|
||||
DEF_YUV(I420, ('I','4','2','0'), LSB, 12),
|
||||
DEF_YUV(YUY2, ('Y','U','Y','2'), LSB, 16),
|
||||
DEF_YUV(UYVY, ('U','Y','V','Y'), LSB, 16),
|
||||
DEF_YUV(AYUV, ('A','Y','U','V'), LSB, 32),
|
||||
#if G_BYTE_ORDER == G_BIG_ENDIAN
|
||||
DEF_RGB(ARGB, ('A','R','G','B'), MSB, 32,
|
||||
32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000),
|
||||
DEF_RGB(ABGR, ('A','B','G','R'), MSB, 32,
|
||||
32, 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000),
|
||||
DEF_RGB(xRGB, ('X','R','G','B'), MSB, 32,
|
||||
24, 0x00ff0000, 0x0000ff00, 0x000000ff, 0x00000000),
|
||||
DEF_RGB(xBGR, ('X','B','G','R'), MSB, 32,
|
||||
24, 0x000000ff, 0x0000ff00, 0x00ff0000, 0x00000000),
|
||||
#elif G_BYTE_ORDER == G_LITTLE_ENDIAN
|
||||
DEF_RGB(BGRA, ('B','G','R','A'), LSB, 32,
|
||||
32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000),
|
||||
DEF_RGB(RGBA, ('R','G','B','A'), LSB, 32,
|
||||
32, 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000),
|
||||
DEF_RGB(BGRx, ('B','G','R','X'), LSB, 32,
|
||||
24, 0x00ff0000, 0x0000ff00, 0x000000ff, 0x00000000),
|
||||
DEF_RGB(RGBx, ('R','G','B','X'), LSB, 32,
|
||||
24, 0x000000ff, 0x0000ff00, 0x00ff0000, 0x00000000),
|
||||
#endif
|
||||
DEF_YUV(GRAY8, ('Y','8','0','0'), LSB, 8),
|
||||
{ 0, }
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue